`

Java操作mongoDB

阅读更多

java连接mongoDB代码

package comfx.webservice.common;

import java.io.InputStream;
import java.util.Properties;

import com.mongodb.BasicDBList;
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.MongoOptions;

/**
 * 连接mongoDB
 *
 */
public class MongoDBHelper {
	private String mongoDBIpAddress;
	private int mongoDBPort;
	private String mongoDBName;
	private String mongoDBUserName;
	private String mongoDBPassword;
	private int poolSize = 10;// 连接数量 
    private int blockSize = 10; // 等待队列长度 
    
    private Mongo m = null;
    
    private DB mongoConnection = null;
    
    public MongoDBHelper() throws Exception{
    	Properties props = new Properties();
    	InputStream in = this.getClass().getClassLoader().getResourceAsStream("mongo.properties");
        props.load(in);
        mongoDBIpAddress = props.getProperty ("mongoDBIpAddress").trim();
        mongoDBPort = Integer.valueOf(props.getProperty ("mongoDBPort").trim());
        mongoDBName = props.getProperty ("mongoDBName").trim();
        mongoDBUserName = props.getProperty ("mongoDBUserName").trim();
        mongoDBPassword = props.getProperty ("mongoDBPassword").trim();
        poolSize = Integer.valueOf(props.getProperty ("poolSize").trim());
        blockSize = Integer.valueOf(props.getProperty ("blockSize").trim());
        
    	m = new Mongo(mongoDBIpAddress, mongoDBPort);
		MongoOptions opt = m.getMongoOptions(); 
        opt.connectionsPerHost = poolSize; 
        opt.threadsAllowedToBlockForConnectionMultiplier = blockSize; 
        DB db = m.getDB(mongoDBName);
	    if(db.authenticate(mongoDBUserName, mongoDBPassword.toCharArray())){
	    	mongoConnection = db;
	    }
    }
	
	/**
	 * 插入用户
	 * @param userinfo
	 * @return 是否成功
	 * @throws Exception
	 */
	public void insertUserInfo(UserInfo userinfo) throws Exception{
        DBCollection authors = mongoConnection.getCollection("users");
        BasicDBObject val = new BasicDBObject();
        //插入数据
        val.put("username", userinfo.getUsername());
        val.put("useremail", userinfo.getUseremail());
        val.put("userphone", userinfo.getUserphone());
        val.put("usertype", userinfo.getUsertype());
        authors.save(val);//将该Document插入到mongodb的collection中 
	}
	
	/**
	 * 更新用户
	 * @param userinfo
	 * @throws Exception
	 */
	public void updateUserInfo(UserInfo userinfo) throws Exception{
		DBCollection authors = mongoConnection.getCollection("users");
		DBObject updateCondition=new BasicDBObject();
		
		//where name='fox'
		updateCondition.put("username", userinfo.getUsername());
		updateCondition.put("usertype", userinfo.getUsertype());
		
		DBObject updatedValue=new BasicDBObject();
		if(userinfo.getUseremail()!=null&&!userinfo.getUseremail().equals("")){
			updatedValue.put("useremail", userinfo.getUseremail());
		}
		if(userinfo.getUserphone()!=null&&!userinfo.getUserphone().equals("")){
			updatedValue.put("userphone", userinfo.getUserphone());
		}
		if((userinfo.getUseremail()!=null&&!userinfo.getUseremail().equals(""))||(userinfo.getUserphone()!=null&&!userinfo.getUserphone().equals(""))){
			DBObject updateSetValue=new BasicDBObject("$set",updatedValue);
			authors.update(updateCondition, updateSetValue);
		}
		
	}
	
	/**
	 * 删除用户
	 * @param userinfo
	 * @throws Exception
	 */
	public void removeUserInfo(UserInfo userinfo) throws Exception{
		DBCollection authors = mongoConnection.getCollection("users");
		BasicDBObject val = new BasicDBObject();
        //插入数据
        val.put("username", userinfo.getUsername());
        val.put("useremail", userinfo.getUseremail());
        val.put("userphone", userinfo.getUserphone());
        val.put("usertype", userinfo.getUsertype());
        authors.remove(val);
	}
	
	/**
	 * 根据用户名、邮箱、手机查找用户
	 * @param userinfo
	 * @return 详情
	 * @throws Exception
	 */
	public UserInfo getUserInfo(UserInfo userinfo) throws Exception{
		UserInfo u = new UserInfo();
		DBCollection authors = mongoConnection.getCollection("users");
        BasicDBObject val = new BasicDBObject();
        BasicDBList values = new BasicDBList();
        BasicDBList values1 = new BasicDBList();
        if(userinfo!=null && userinfo.getUsername()!=null && !userinfo.getUsername().equals(""))
        	values.add(new BasicDBObject("username", userinfo.getUsername()));  
        if(userinfo!=null && userinfo.getUseremail()!=null && !userinfo.getUseremail().equals(""))
        	values.add(new BasicDBObject("useremail", userinfo.getUseremail()));  
        if(userinfo!=null && userinfo.getUserphone()!=null && !userinfo.getUserphone().equals(""))
        	values.add(new BasicDBObject("userphone", userinfo.getUserphone()));
        values1.add(new BasicDBObject("usertype", userinfo.getUsertype()));
        val.put("$or", values);
        val.put("$and", values1);
        
        DBCursor cursor = authors.find(val);
        while (cursor.hasNext()) {
        	DBObject obj = cursor.next();
        	u.setUsername(obj.get("username")+"");
        	u.setUseremail(obj.get("useremail")+"");
        	u.setUserphone(obj.get("userphone")+"");
        	u.setUsertype(obj.get("usertype")+"");
        }
        if(u.getUsername() != null && !"".equals(u.getUsername())){
        	return u;
        }else{
        	return null;
        }
	}
	
}

 配置文件mongo.properties

mongoDBIpAddress = 192.168.1.157
mongoDBPort = 27017
mongoDBName = CHECKUSER
mongoDBUserName = userid
mongoDBPassword = 123.com
#连接数量
poolSize = 10
#等待队列长度 
blockSize =10

 

mongoDB jar包

mongo-2.6.5.jar(附件)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics