`
it_iweb
  • 浏览: 9444 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

java操作mongoDB数据库(一)

阅读更多

public class JMongoDB {
	/**
	 * Mongo类代表与MongoDB服务器的连接,有多种构造函数。无参构造函数默认连接localhost:27017.
	 * 
	 * Mongo connection = new Mongo("");
	 * 
	 * DB类代表数据库,如果当前服务器上没有该数据库,会默认创建一个
	 * 
	 * DB db = connection.getDB("J_mongoDb");
	 * 
	 * DBCollection代表集合,如果数据库中没有该集合,会默认创建一个
	 * 
	 * DBCollection userPrivileges = db.getCollection("user_privilege");
	 */
	private static final String HOST = "服务器地址";
	private static final int PORT = 27017;// mongoDB默认端口号
	// private static final String USER = "";// 服务器用户名
	// private static final String PASSWORD = "";// 密码
	private static final String DB_NAME = "J_mongoDb";// 相当于mongoDB数据库名称
	private static final String COLLECTION = "user_privilege";// 集合,相当于表
	private static Mongo conn = null;
	private static DB myDB = null;
	private static DBCollection myCollection = null;

	static {
		try {
			conn = new Mongo(HOST, PORT);// 建立数据库连接
			myDB = conn.getDB(DB_NAME);// 使用z_webtest数据库
			// boolean loginSuccess = myDB.authenticate(USER,
			// PASSWORD.toCharArray());// 用户验证
			// if (loginSuccess) {
			myCollection = myDB.getCollection(COLLECTION);
			// }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void addUserPrivilege2mongoDb(String url, Object uid,
			boolean b) throws Exception {

		/**
		 * DBObject代表文档,这是一个接口,java中提供了多种实现,最简单的就是BasicDBObject了
		 */
		DBObject userPrivilege = new BasicDBObject();
		userPrivilege.put("url", url);
		userPrivilege.put("user_id", uid);
		userPrivilege.put("sf", b);
		myCollection.insert(userPrivilege);
	}

	public static List<String> getUserPrivilegeList(Object uid, boolean b)
			throws Exception {

		/**
		 * 根据用户id,是否可用sf进行查询
		 */
		DBObject queryByUid = new BasicDBObject();
		queryByUid.put("user_id", uid);
		queryByUid.put("sf", b);
		/**
		 * 调用DBCollection的find(query);方法
		 */
		DBCursor queryRerult = myCollection.find(queryByUid);
		List<String> urlList = new ArrayList<String>();
		/**
		 * 遍历查询结果,从查询结果中取出用户id对应的权限URL,放到集合中返回
		 */
		for (Iterator<DBObject> it = queryRerult.iterator(); it.hasNext();) {
			DBObject o = it.next();
			urlList.add((String) o.get("url"));
		}
		return urlList;
	}

	public static void main(String[] args) {
		try {
			System.out.println(JMongoDB.getUserPrivilegeList(1, true));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


mongoDB数据库里,创建一个集合,包含三个字段(String url,Object uid,boolean b),分别表示当前用户uid拥有的访问权限URL,及该权限是否有效b,这里写两个方法,往mongoDB里添加或查询权限相关数据;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics