MongoDB的java操作工具
2016-05-26 12:36
465 查看
之前看到一些mongoDB的java操作方式,但是要不做反射,要不就会创建很多操作对象,这样比较麻烦,下面这种方式只需要一个操作对象就可以获取所有的Entity,直接上代码
实现类
public interface MongoDao<T> { /** * 通过条件查询实体(集合) * * @param query */ public List<T> find(Query query, Class<T> entity) ; /** * 通过条件查询实体(集合) * */ public List<T> findAll(Class<T> entity) ; /** * 通过一定的条件查询一个实体 * * @param query * @return */ public T findOne(Query query, Class<T> entity) ; /** * 保存一个对象到mongodb * * @param entity * @return */ // public T save(T entity) ; /** * 通过ID获取记录 * * @param id * @return */ public T findById(String id, Class<T> entity) ; /** * 通过ID获取记录,并且指定了集合名(表的意思) * * @param id * @param collectionName * 集合名 * @return */ public T findById(String id, String collectionName, Class<T> entity) ; /** * 分页查询 * @param page * @param query * @return */ public Page<T> findPage(Page<T> page,Query query, Class<T> entity); /** * 求数据总和 * @param query * @return */ public long count(Query query, Class<T> entity); }
实现类
public class MongoManager<T> implements MongoDao<T> { protected MongoTemplate mongoTemplate; public MongoManager(String host, int port, String databaseName) { try { mongoTemplate = new MongoTemplate(new Mongo(host, port), databaseName); } catch (UnknownHostException e) { e.printStackTrace(); } } @Override public List<T> find(Query query, Class entity) { return mongoTemplate.find(query, entity); } @Override public List<T> findAll(Class<T> entity) { return mongoTemplate.findAll(entity); } @Override public T findOne(Query query, Class<T> entity) { return mongoTemplate.findOne(query, entity); } @Override public T findById(String id, Class<T> entity) { return mongoTemplate.findById(id, entity); } @Override public T findById(String id, String collectionName, Class<T> entity) { return mongoTemplate.findById(id, entity, collectionName); } @Override public Page<T> findPage(Page<T> page, Query query, Class<T> entity) { long count = count(query, entity); // page.setTotal(count); int pageNumber = page.getNumber(); int pageSize = page.getSize(); query.skip((pageNumber - 1) * pageSize).limit(pageSize); List<T> rows = this.find(query, entity); page = new PageImpl(rows); // page.setRows(rows); return page; } @Override public long count(Query query, Class<T> entity) { return mongoTemplate.count(query, entity); } }
调用:
mongoManager.findAll(XXX.class);
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- 信息安全聚合 Sec-News 的重构之路
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- 使用zabbix监控mongodb的方法
- Node.js的MongoDB驱动Mongoose基本使用教程
- MongoDB系列教程(四):设置用户访问权限
- node.js连接mongoDB数据库 快速搭建自己的web服务
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- 关于mongoose连接mongodb重复访问报错的解决办法
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解