Mongodb底层java驱动框架工具类使用
来源:互联网 发布:java jar 替换文件 编辑:程序博客网 时间:2024/04/27 13:45
使用MongoDB需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键,
测试用例:
工具类使用:
然后使用某个随机数对文档进行查询高效,随机键还能添加索引,效率更高。合理选择,合理设计。
import java.net.UnknownHostException;import java.util.Date;import java.util.List;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.MongoException;import com.nerd.mongo.config.ConfigFactory;/** * MONGOS * @author chenlongquan * */public class MongoUtil {private final static ThreadLocal<Mongo> mongos = new ThreadLocal<Mongo>();public static DB getdb(){return getMongos().getDB(ConfigFactory.getMongoConfig().getDb());}public static Mongo getMongos() {Mongo mongo = mongos.get();if (mongo == null) {try {mongo = new Mongo(ConfigFactory.getMongoConfig().getIp(),ConfigFactory.getMongoConfig().getPort());mongos.set(mongo);} catch (UnknownHostException e) {e.printStackTrace();} catch (MongoException e) {e.printStackTrace();}}return mongo;}public static void close(){Mongo mongo = mongos.get();if(mongo!=null){mongo.close();mongos.remove();}}/** * 获取集合(表) * * @param collection */public static DBCollection getCollection(String collection) {return getdb().getCollection(collection);}......................................................下面我们就可以在这上面的基础上对mongodb进行基本的crud操作
例如:
/** * 插入 * * @param collection * @param o 插入 * */public static void insert(String collection, DBObject o) {getCollection(collection).insert(o);}/** * 批量插入 * * @param collection * @param list * 插入的列表 */public void insertBatch(String collection, List<DBObject> list) {if (list == null || list.isEmpty()) {return;}getCollection(collection).insert(list);}
测试用例:
insert("user1",new BasicDBObject().append("name", "admin3").append("type", "2").append("score", 70) .append("level", 2).append("inputTime", new Date().getTime()));
工具类使用:
/** * 删除 * * @param collection * @param q * 查询条件 */public void delete(String collection, DBObject q) {getCollection(collection).remove(q);}/** * 批量删除 * * @param collection * @param list * 删除条件列表 */public void deleteBatch(String collection, List<DBObject> list) {if (list == null || list.isEmpty()) {return;}for (int i = 0; i < list.size(); i++) {getCollection(collection).remove(list.get(i));}}/** * 更新 * * @param collection * @param q * 查询条件 * @param setFields * 更新对象 */public static void update(String collection, DBObject q, DBObject setFields) {getCollection(collection).updateMulti(q,new BasicDBObject("$set", setFields));}/** * 查找集合所有对象 * * @param collection */public static List<DBObject> findAll(String collection) {return getCollection(collection).find().toArray();}/** * 按顺序查找集合所有对象 * * @param collection * 数据集 * @param orderBy * 排序 */public static List<DBObject> findAll(String collection, DBObject orderBy) {return getCollection(collection).find().sort(orderBy).toArray();}/** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 */public static DBObject findOne(String collection, DBObject q) {return getCollection(collection).findOne(q);}/** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 */public static DBObject findOne(String collection, DBObject q, DBObject fileds) {return getCollection(collection).findOne(q, fileds);}/** * 分页查找集合对象,返回特定字段 * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 * @pageNo 第n页 * @perPageCount 每页记录数 */public static List<DBObject> findLess(String collection, DBObject q, DBObject fileds, int pageNo,int perPageCount) {return getCollection(collection).find(q, fileds).skip((pageNo - 1) * perPageCount).limit(perPageCount).toArray();}
0 0
- Mongodb底层java驱动框架工具类使用
- mongodb Java 工具类
- JAVA mongodb工具类
- MongoDB的Java驱动使用整理
- MongoDB程序开发之使用Java驱动
- MongoDB的Java驱动使用整理
- MongoDB程序开发之使用Java驱动
- MongoDB的Java驱动使用整理
- mongodb的java驱动的简单使用
- mongodb java 驱动
- java底层分页使用
- Spring使用java驱动定时调用MongoDB函数
- java连接MySQL数据库DB类底层框架代码实现
- JAVA单例MongoDB工具类
- JAVA单例MongoDB工具类
- java操作MongoDB工具类分享
- Mongodb-java获取链接工具类
- 利用Morphia框架工具类操作mongodb的实例。
- ztree 刷新问题
- 厂家低价批发无捻竹纤维大格童巾素色环保幼儿专用毛巾
- 一个int变量能装一个月的签到信息?
- 开发遇到问题全记录【增量】
- oracle三对内存参数间关系之5AMM启动和关闭两种情况下pga自动管理涉及的一对参数间的关系探讨
- Mongodb底层java驱动框架工具类使用
- mysql binlog三种模式 binlog查看
- Java初学习 - synchronized与static synchronized 的区别 (1)
- Nasty Hacks
- iOS关闭虚拟键盘
- 仿新浪微博的ListView下拉更新功能
- 如何选择好的上海自媒体招聘平台
- 高阳浴巾厂家直销纯棉蕾丝花边浴巾高档礼品浴巾
- Android开源游戏引擎有哪些?