`

学习MongoDB(二)——用Java对数据库进行增删改查

阅读更多

MongoDB已经支持很多种语言的数据访问,官方提供的API参考 http://www.mongodb.org/display/DOCS/Drivers

值得一提的是还有JavaScript的访问API,当然是在服务器端用JavaScript来访问MongoDB数据库,必然就得利用Node.js了。

下载Java的驱动Jar包:https://github.com/mongodb/mongo-java-driver/downloads

Java的API在线文档地址:http://api.mongodb.org/java/2.9.1/

官网给出的Java的操作指导:http://www.mongodb.org/display/DOCS/Java+Tutorial

这里列出基本的CRUD的示例代码:

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

public class RemoteMongoTest {

	private static Mongo m; 
	private static void CreateMethod(){
		 DB db = m.getDB("newtest");//不存在会自动创建  
		 
         DBCollection col = db.getCollection("col");//不存在会自动创建  
         System.out.println("当前数据库下的集合列表:"+db.getCollectionNames()); //所有有数据的集合名称
        
         //向集合中插入数据,不用考虑数据重复,因为mongodb会为每个数据对象指定一个不同的ObjectId
         BasicDBObject val = new BasicDBObject(); 
         val.put("name", "Kaka2"); 
         //col.insert(val); 
         col.save(val); 
         
         //不同数据对象的字段也不必一样
         val = new BasicDBObject();  
         val.put("name2", "C.R");
         val.put("nickname", "C.R");
         col.insert(val); 
         //col.save(val); 
	}
	private static void ReadMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
		
		//取得所有数据并打印出来 
        DBCursor ite = col.find(); //这儿也能像下面findone函数一样加限定条件
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }   
        
        System.out.println("///////////////////////////////////////");
        
        //类似sql语句:select top 1 * from col where name='Kaka';
        DBObject oners = col.findOne(new BasicDBObject("name","Kaka"));
        System.out.println(oners);
        
        //类似sql语句:select top 1 name2,nickname from col where name2='C.R';
        oners = col.findOne(new BasicDBObject("name2","C.R"),
        				   (BasicDBObject)(new BasicDBObject("nickname","").put("name2", ""))
        					);
        System.out.println(oners);
	}
	private static void UpdateMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
        
        DBObject temp = col.findAndModify(new BasicDBObject("name","Kaka"), 
        				 (BasicDBObject)(new BasicDBObject("name","CZ"))
        				 );
        System.out.println(temp);//返回更改之前的数据对象
        
        //类似sql语句:update col set name='dl' where name='kaka2'
        col.update(new BasicDBObject("name","kaka2"), new BasicDBObject("name","dl"));
        //一次更新多条数据不管用
        //col.update(new BasicDBObject("name2","C.R"), new BasicDBObject("nickname","soso"),false,true);
        //col.updateMulti(new BasicDBObject("name2","C.R"), new BasicDBObject("nickname","soso"));
        
        DBCursor ite = col.find(); 
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }   
	}
	private static void DeleteMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
        
        //类似sql语句:delete from col where name2='C.R';
        col.remove(new BasicDBObject("name2","C.R"));
        col.findAndRemove(new BasicDBObject("name","Kaka"));//返回删除之前的数据对象
        
        DBCursor ite = col.find(); 
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }  
        
        //col.drop();//删除数据集合
        //db.dropDatabase();//删除数据库
	}
	
	
	public static void main(String[] args) {
		try{ 
			m = new Mongo("192.168.1.193");//默认的port就是27017 这里是连接另外一台Mac笔记本上的mongo数据库
			System.out.println("数据库列表:"+m.getDatabaseNames());  //所有有数据的数据库名称
			CreateMethod();
			//ReadMethod();
			//UpdateMethod();
			//DeleteMethod();
        }catch(Exception error) 
        { 
            error.printStackTrace(); 
        } 
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics