日期:2014-05-16 浏览次数:20556 次
1、mongodb java driver下载
?
??你可以到mongodb官网下载jar包,如果你使用maven管理工程,可以通过以下代码依赖:
?
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.8.0</version> </dependency>
?
?
2、mongodb java driver驱动不支持事务
?
?? ? ? javaq驱动不支持事务,但可以设置多个写操作在同一次提交中
?? ? ? ? db.requestStart();
/*你的业务代码*/ db.requestDone()?
?
?
3、mongodb java driver安全连接问题
?
?? 如果你的mongodb连接时需要安全验证,那么在java代码里需要写上
?
?
??? DB db = mongo.getDB(dbname);
if(!db.isAuthenticated()){ db.authenticate("username", "password"); }?
???if(!db.isAuthenticated()){} 判断一定要加上,否则可能会抛异常,重复验证!
4、Mongodb连接池管理
?
?? ? ? mongodb java驱动已经默认实现了一个连接池,java 驱动入口是Mongo类,在整个系统中,这个类建议只有一个实例,即系统只有一个连接池,这个和普通的数据库一样。
?
?
package com.ldl.mongodb; import java.io.IOException; import java.net.UnknownHostException; import java.util.Properties; import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoException; import com.mongodb.MongoURI; /** * mongodb数据库连接管理类 * @author liu400liu * */ public class MongodbManager { private static MongodbManager dbManager = new MongodbManager(); private static MongoURI mongoURI; private static Mongo mongo ; static{ Properties properties = new Properties(); try { properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties")); } catch (IOException e) { throw new RuntimeException(e); } String uri = "mongodb://${mongo.username}:${mongo.password}@${mongo.url}"; uri = uri.replace("${mongo.url}", properties.getProperty("mongo.url")); if("1".equals(properties.getProperty("mongo.auth"))){//连接mongodb数据库是否需要权限1:需要,0不需要 uri = uri.replace("${mongo.username}", properties.getProperty("mongo.username")) .replace("${mongo.password}", properties.getProperty("mongo.password")); }else{ uri = uri.replace("${mongo.username}:${mongo.password}@", ""); } mongoURI = new MongoURI(uri); try { mongo = new Mongo(mongoURI); } catch (MongoException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } } private MongodbManager() { } public static MongodbManager getInstance(){ return dbManager; } //根据数据库名称,获取DB public DB getDB(String dbname) throws MongoException, UnknownHostException{ DB db = mongo.getDB(dbname); if(mongoURI.getUsername() != null && !db.isAuthenticated()){ db.authenticate(mongoURI.getUsername(), mongoURI.getPassword()); } //db.requestStart(); return db; } public DB getDB() throws MongoException, UnknownHostException{ return getDB(mongoURI.getDatabase()); } /* public static void main(String[] args) throws MongoException, UnknownHostException { DB db = DbManager.getInstance().getDB("test"); System.out.println(db.getCollection("blog").findOne().toString()); }*/ }?
5、mongodb数据库日期字段使用时注意事项
?
?? ? ?在做mongodb查询时,我用日期作为过滤字段,发现一个问题,格式化后的日期传入mongodb会抛异常。比如
?
?
SimpleDateForm