您的位置:首页 > 数据库 > Mongodb

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

2017-07-04 11:59 429 查看
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
4000
)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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: