java连接mongodb
2016-08-13 00:01
176 查看
刚开始接触学习mongodb,之前熟悉了mongodb的安装和配置。今天开始着手java连接mongodb,进行一些简单的数据操作。
新建一个java文件,导入mongodb的驱动jar包mongo-2.10.1.jar。
运行程序,控制台打印出结果
我简单地以为mongodb的程序运行与本地是否安装了mongodb无关,因为我找不到代码中连接数据库的一些特征。比如说url,username,password,driverClass之类的。
囧
并不是这样。
cmd,net stop MongoDB.
再一次运行程序,控制台报错。
连接失败,说明需要本地mongodb环境的支持。
将上面的代码最后一句删除语句:m.dropDatabase(“new_test_db”);注释掉。运行代码。
cmd,mongo,show dbs
新建的mongodb数据库已经存在。
新建一个java文件,导入mongodb的驱动jar包mongo-2.10.1.jar。
package mongodb; import java.net.UnknownHostException; import java.util.Set; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException; /** * java连接mongodb * @author Administrator * */ public class MongoTest { public static void main(String[] args) throws UnknownHostException,MongoException{ //连接本地数据库 Mongo m=new Mongo(); //创建名为new_test_db的数据库 DB db=m.getDB("new_test_db"); //获取new_test_db中的集合(类似于获取关系数据库中的表) Set<String>cols=db.getCollectionNames(); //打印出new_test_db中的集合,这里应当为Null for (String str : cols) { System.out.println(str); } //创建一个叫做“new_test_col”的集合 DBCollection collection=db.getCollection("new_test_col"); //初始化一个基本DB对象,最终插入数据库的就是这个DB对象 BasicDBObject obj=new BasicDBObject(); //放入几个键值对 obj.put("from", "火星"); obj.put("to", "地球"); obj.put("subject", "火星爱地球"); //插入对象 collection.insert(obj); //查看一条记录,findOne()=find().limit(1); DBObject dbobj=collection.findOne(); //打印出刚才插入的数据 System.out.println(dbobj); //插入9条{ranking:i}的数据 for(int i=0;i<9;i++){ collection.insert(new BasicDBObject().append("ranking", i)); } //打印集合中的数据总数,这里应当输出10 System.out.println(collection.getCount()); //遍历集合,find()方法返回的是一个游标cursor,和关系型数据库概念想相似 DBCursor cursor=collection.find(); //使用这个游标遍历数据 while(cursor.hasNext()){ System.out.println(cursor.next()); } //简单的条件查询,查询ranking为1的记录 BasicDBObject query=new BasicDBObject(); query.put("ranking", 1); cursor=collection.find(query); while(cursor.hasNext()){ System.out.println(cursor.next()); } //查询ranking大于5小于9的记录 query=new BasicDBObject(); query.put("ranking", new BasicDBObject("$gt",5).append("$lt", 9)); cursor=collection.find(query); while(cursor.hasNext()){ System.out.println(cursor.next()); } //删除测试数据库 m.dropDatabase("new_test_db"); } }
运行程序,控制台打印出结果
我简单地以为mongodb的程序运行与本地是否安装了mongodb无关,因为我找不到代码中连接数据库的一些特征。比如说url,username,password,driverClass之类的。
囧
并不是这样。
cmd,net stop MongoDB.
再一次运行程序,控制台报错。
八月 12, 2016 11:34:02 下午 com.mongodb.DBTCPConnector initDirectConnection 警告: Exception executing isMaster command on /127.0.0.1:27017 java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect at com.mongodb.DBPort._open (DBPort.java:214) at com.mongodb.DBPort.go(DBPort.java:107) at com.mongodb.DBPort.go(DBPort.java:88) at com.mongodb.DBPort.findOne (DBPort.java:143) at com.mongodb.DBPort.runCommand (DBPort.java:148) at com.mongodb.DBTCPConnector.initDirectConnection (DBTCPConnector.java:548) at com.mongodb.DBTCPConnector.checkMaster (DBTCPConnector.java:527) at com.mongodb.DBTCPConnector.innerCall (DBTCPConnector.java:277) at com.mongodb.DBTCPConnector.call (DBTCPConnector.java:257) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:310) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:295) at com.mongodb.DB.getCollectionNames (DB.java:412) at mongodb.MongoTest.main (MongoTest.java:26) 八月 12, 2016 11:34:03 下午 com.mongodb.DBPortPool gotError 警告: emptying DBPortPool to /127.0.0.1:27017 b/c of error java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect at com.mongodb.DBPort._open (DBPort.java:214) at com.mongodb.DBPort.go(DBPort.java:107) at com.mongodb.DBPort.call(DBPort.java:74) at com.mongodb.DBTCPConnector.innerCall (DBTCPConnector.java:286) at com.mongodb.DBTCPConnector.call (DBTCPConnector.java:257) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:310) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:295) at com.mongodb.DB.getCollectionNames (DB.java:412) at mongodb.MongoTest.main (MongoTest.java:26) Exception in thread "main" com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/new_test_db at com.mongodb.DBTCPConnector.innerCall (DBTCPConnector.java:295) at com.mongodb.DBTCPConnector.call (DBTCPConnector.java:257) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:310) at com.mongodb.DBApiLayer $MyCollection.__find(DBApiLayer.java:295) at com.mongodb.DB.getCollectionNames (DB.java:412) at mongodb.MongoTest.main (MongoTest.java:26) Caused by: java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect at com.mongodb.DBPort._open (DBPort.java:214) at com.mongodb.DBPort.go(DBPort.java:107) at com.mongodb.DBPort.call(DBPort.java:74) at com.mongodb.DBTCPConnector.innerCall (DBTCPConnector.java:286) ... 5 more
连接失败,说明需要本地mongodb环境的支持。
将上面的代码最后一句删除语句:m.dropDatabase(“new_test_db”);注释掉。运行代码。
cmd,mongo,show dbs
新建的mongodb数据库已经存在。
相关文章推荐
- java连接MongoDB的方法(包括java和MongoDB环境的搭建)
- Java连接MongoDB
- java连接mongodb
- MongoDB 3.0 for java (一、java连接MongoDB)
- 使用Java 连接MongoDB3.X 3.04 带 auth 认证
- Java无法连接MongoDB问题
- java连接mongodb的一个奇葩问题及奇葩解决方式
- Java 连接MongoDB并进行insert delete操作
- java连接mongoDB《安全验证》
- java连接Mongodb3.0 用户认证
- Mongodb的安装以及Java连接Mongodb初探
- 简单的java连接MongoDB实例
- java连接虚拟机里面的MongoDB出错
- Java连接mongodb
- mongodb连接数据库带账号密码的需要在java中添加
- Java连接SQL Server和MongoDb
- MongoDB Java 连接
- java连接mongodb
- mongodb的安装(window)及java连接测试
- MongoDB学习日记 - java代码(二):建立连接