php mongodb分页查询,MongoDB:mongodb在项目开发时的安全验证、分页查询操作

MongoDB:mongodb在项目开发时的安全验证、分页查询操作。 对于数据库而言,在项目应用中都需要安全验证,不然,就会报错,呵呵~~ 现在贴出来我在项目中是怎么做的。 数据源bean: package com.ishowchina.user.dao;import com.mongodb.BasicDBObject;impo

MongoDB:mongodb在项目开发时的安全验证、分页查询操作。

对于数据库而言,在项目应用中都需要安全验证,不然,就会报错,呵呵~~

现在贴出来我在项目中是怎么做的。

数据源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

classpath:appconfig.properties

这样做还不够,虽然知道了去那找数据库配置信息,但是,怎么获取数据库配置信息呢,还是在spring-servlet.xml里。

以上就是完全的相关配置,接下来我们就可以调用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;

}

以上,大致流程就这样。。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值