MongoDB:mongodb在项目开发时的安全验证、分页查询操作
2014-01-22 11:06
555 查看
MongoDB:mongodb在项目开发时的安全验证、分页查询操作。
对于数据库而言,在项目应用中都需要安全验证,不然,就会报错,呵呵~~
现在贴出来我在项目中是怎么做的。
原创文章,转载请注明出处:/article/1382657.html
数据源bean:
appconfig.properties配置文件的内容,配置数据库源信息
此外,肯定还要把配置文件appconfig.properties导入到spring bean factory,也就是需要让datasource.java 知道去appconfig.properties 中找数据库配置信息
spring-servlet.xml
这样做还不够,虽然知道了去那找数据库配置信息,但是,怎么获取数据库配置信息呢,还是在spring-servlet.xml里。
以上就是完全的相关配置,接下来我们就可以调用getCollection、OpenConnection等方法了
举个例子:
以上,大致流程就这样。。
大家如果有问题或者更好的方法,欢迎交流。
对于数据库而言,在项目应用中都需要安全验证,不然,就会报错,呵呵~~
现在贴出来我在项目中是怎么做的。
原创文章,转载请注明出处:/article/1382657.html
数据源bean:
package com.ishowchina.user.dao; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class DataSource { private String ip;//数据库连接信息要从配置文件中获取 参考appconfig.properties文件 private Integer port; protected String dbName; protected Boolean auth; protected String userName; protected String passWord; //打开连接 此处在获取数据库信息(ip、账户、密码等)后,打开数据库。 public MongoClient OpenConnection() throws Exception{ MongoClient mongoClient = new MongoClient( ip,port); return mongoClient; } //获取数据集 此处为数据库安全验证 public DBCollection getCollection(MongoClient client,String tableName){ if(client==null){ return null; }else { DB db = client.getDB(getDbName());//获取数据库 boolean r=true;//验证用户及密码 if(auth!=null && auth.equals(true)){ r = db.authenticate(userName, passWord.toCharArray());//密码验证 } if(r){ DBCollection coll = db.getCollection(tableName);//获取数据集 return coll; }else { return null; } } } //释放连接 public void ReleaseConnection(MongoClient mongoClient){ if(mongoClient!=null){ mongoClient.close(); } } //删除操作,注意要传入参数 public void deleteObject(DBObject o,DBCollection col){ col.remove(o); } //分页查询 分页查询mongodb已经为我们集成了,只需调用api就行 public DBCursor queryPage(DBObject query,DBObject sort,int start,int limit,DBCollection col){ //.sort('account',1).limit(10),int count = cursor.count() BasicDBObject exp=new BasicDBObject("_id",0); return col.find(query,exp).sort(sort).skip(start).limit(limit); } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public Integer getPort() { return port; } public void setPort(Integer port) { this.port = port; } public String getDbName() { return dbName; } public Boolean getAuth() { return auth; } public void setAuth(Boolean auth) { this.auth = auth; } public void setDbName(String dbName) { this.dbName = dbName; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
appconfig.properties配置文件的内容,配置数据库源信息
mongo.ip=160.0.0.243 mongo.port=27017 mongo.auth=true mongo.user=ucenter mongo.pwd=user2show mongo.dbName=ucenter
此外,肯定还要把配置文件appconfig.properties导入到spring bean factory,也就是需要让datasource.java 知道去appconfig.properties 中找数据库配置信息
spring-servlet.xml
<!-- 导入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:appconfig.properties</value> </list> </property> </bean>
这样做还不够,虽然知道了去那找数据库配置信息,但是,怎么获取数据库配置信息呢,还是在spring-servlet.xml里。
<!-- 数据源 --> <bean id="dataSource" class="com.ishowchina.user.dao.DataSource"><!-- 此处是和我们的数据库bean是对应关系 --> <property name="ip" value="${mongo.ip}"/> <!-- 此处是去appconfig.properties里找关键字对应的数据库信息 --> <property name="port" value="${mongo.port}"/> <property name="dbName" value="${mongo.dbName}"/> <property name="auth" value="${mongo.auth}"/> <property name="userName" value="${mongo.user}"/> <property name="passWord" value="${mongo.pwd}"/> </bean>
以上就是完全的相关配置,接下来我们就可以调用getCollection、OpenConnection等方法了
举个例子:
public DBObject getUserInfo(DBObject o) throws Exception{ MongoClient mongoClient = dataSource.OpenConnection(); DBCollection coll = dataSource.getCollection(mongoClient,tableName);//获取数据集userinfo //mongoClient.setWriteConcern(WriteConcern.JOURNALED);//Setting Write Concern BasicDBObject exp=new BasicDBObject("_id",0);//排除ID字段 DBObject myDoc = coll.findOne(o,exp); dataSource.ReleaseConnection(mongoClient) ;//释放连接 return myDoc; }
以上,大致流程就这样。。
大家如果有问题或者更好的方法,欢迎交流。
相关文章推荐
- MongoDB:mongodb在项目开发时的安全验证、分页查询操作
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- XMPP框架 微信项目开发之CoreData学习——CoreData的查询方式(模糊查询,嵌套查询,分页查询)
- tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片
- Java操作MongoDB模糊查询和分页查询
- MongoDB多条件分页查询,新增,删除操作
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- iOS开发- 查询项目代码行数
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
- 分享项目经验:一个净水器的显示操作面板开发
- 第三章-电商项目-优化评论分页查询
- java操作mongodb(分页优化)
- WCF分布式安全开发实践(4):传输安全模式之Windows身份验证:Transport_Windows_NetTcpBinding
- java操作mongodb(分页优化)
- TableStore表格存储(阿里云OTS)多行数据操作查询,支持倒序,过滤条件和分页
- php安全开发 添加随机字符串验证,防止伪造跨站请求
- Mongodb基础用法及查询操作[转载]
- 项目中使用的自定义数据访问类(复杂查询,复杂操作)
- 自编DataBase函数库,内有参数查询及分页操作
- 跟我开发NSP(网上查询平台):如何选择开发项目 (转载)