package org.frameworkset.nosql.mongodb; import org.frameworkset.spi.BaseApplicationContext; import org.frameworkset.spi.DefaultApplicationContext; import com.frameworkset.util.StringUtil; import com.mongodb.DB; import com.mongodb.DBCollection; public class MongoDBHelper { public static final String defaultMongoDB = "default"; private static BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("mongodb.xml"); public static MongoDB getMongoClient(String name) { if(StringUtil.isEmpty(name)) { return context.getTBeanObject(defaultMongoDB, MongoDB.class); } else return context.getTBeanObject(name, MongoDB.class); } public static MongoDB getMongoDB(String name) { if(StringUtil.isEmpty(name)) { return context.getTBeanObject(defaultMongoDB, MongoDB.class); } else return context.getTBeanObject(name, MongoDB.class); } public static MongoDB getMongoDB() { return context.getTBeanObject(defaultMongoDB, MongoDB.class); } public static MongoDB getMongoClient() { return getMongoDB(); } // public static void destory() // { // if(closeDB) // return; // try // { // if(mongoClient != null) // { // try { // mongoClient.close(); // } catch (Exception e) { // log.error("", e); // } // } // } // finally // { // closeDB = true; // } // // } private static final String dianhaochar = "____"; private static final String moneychar = "_____"; private static final int msize = moneychar.length(); public static String recoverSpecialChar(String attribute) { if (attribute.startsWith(moneychar)) { attribute = "$" + attribute.substring(msize); } attribute = attribute.replace(dianhaochar, "."); return attribute; } public static String converterSpecialChar(String attribute) { attribute = attribute.replace(".", dianhaochar); if(attribute.startsWith("$")) { if(attribute.length() == 1) { attribute = moneychar; } else { attribute = moneychar + attribute.substring(1); } } return attribute; } public static DB getDB(String poolname,String dbname) { return getMongoDB(poolname).getDB( dbname ); } public static DB getDB(String dbname) { return getDB(defaultMongoDB,dbname); } public static DBCollection getDBCollection(String poolname,String dbname,String table) { return getMongoDB(poolname).getDB( dbname ).getCollection(table); } public static DBCollection getDBCollection(String dbname,String table) { return getDBCollection(defaultMongoDB,dbname,table); } }