mongodb--java连接数据库实现增删改查

来源:互联网 发布:大数据需要掌握的技术 编辑:程序博客网 时间:2024/05/17 02:40

1.新建一个maven项目,导入

<dependencies>  
    <dependency>  
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>3.8.1</version>  
      <scope>test</scope>  
    </dependency>  
    <dependency>  
        <groupId>org.mongodb</groupId>  
        <artifactId>mongo-java-driver</artifactId>  
        <version>2.10.1</version>  
    </dependency>  
    <dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-core-asl</artifactId>  
        <version>1.9.9</version>  
    </dependency>  
    <dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-mapper-asl</artifactId>  
        <version>1.9.9</version>  
    </dependency>  
      <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.1</version>
</dependency>
  </dependencies>  

2.连接数据库查询所有数据表和集合代码:

public static void main(String[] args) throws UnknownHostException {

Mongo mongo = new Mongo("localhost", 27017);//默认可以不写:
        for (String dbName : mongo.getDatabaseNames()) {
            System.out.println("数据库实例:" + dbName);
        }
        DB db = mongo.getDB("demo");//这个就是数据表-》use demo时创建的
        for (String cName : db.getCollectionNames()) {//遍历demo这个数据表中的集合
            System.out.println("demo存在的集合:" + cName);
        }
        DBCollection webInfo = db.getCollection("test");
        //这个是dos命令在db.test.insert()....操作时自动创建的test集合
        //手动创建某个数据表的集合语法:先进入某个数据表:1.use xxx 2.db.集合名.insert(等操作)这个会创建集合
        //或者直接在某个数据表中输入命令:db.createCollection("集合名")
        DBCursor dbCursor = webInfo.find();
        //这个找到test集合或遍历集合中的所有数据
        while (dbCursor.hasNext()) {
            System.out.println("每个文档数据为:" + dbCursor.next());
        }
        //或者这种遍历集合的方法也可以
        for (Iterator it = dbCursor.iterator(); it.hasNext();) {
            System.out.println("每个文档数据为:" + it.next());
        }
        //输出集合的个数
        System.out.println("文档个数为:" + dbCursor.count());
        //利用mongodb自带的json转化为序列化文档
        System.out.println("序列化此文档"+JSON.serialize(dbCursor));

}


3.java----mongodb添加数据:

private void add(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db= mongo.getDB("demo");
if(db!=null){
DBCollection jihe=db.getCollection("user");
if(jihe!=null){
Gson gson=new Gson();
System.out.println(gson.toJson(user));
DBObject dbObject=(DBObject)JSON.parse(gson.toJson(user));
jihe.insert(dbObject);
}
}
System.out.println("添加成功");
}


4.java----mongodb查询数据:

private DBObject findOne(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
Gson gson=new Gson();
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
DBObject  result=dbc.findOne(dbo);
System.out.println("查询成功");
return result;
}
}
return null;
}

5.java---mongodb修改数据

private void update(User user1,User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection dbc=db.getCollection("user");
Gson gson=new Gson();
DBObject q=(DBObject)JSON.parse(gson.toJson(user1));
DBObject o=(DBObject)JSON.parse(gson.toJson(user));
dbc.update(q, o);
System.out.println("修改成功");
}

6.java---mongodb删除数据

private void delete(int id) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection  dbc= db.getCollection("user");
Gson gson=new Gson();
User user=new User();
user.setId(id);
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
dbc.remove(dbo);
System.out.println("删除成功");
}

7.java---mongodb查询所有

private List<DBObject> findAll() throws UnknownHostException{
List<DBObject> list=new ArrayList<DBObject>();
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
DBCursor  result=dbc.find();
while (result.hasNext()) {
list.add(result.next());
}
System.out.println("查询成功");
return list;
}
}
return list;
}

原创粉丝点击