前言
刚刚看到基于 spring-data-mongodb 的增强工具包mongoHelper 发布了更新,这个工具包简化 CRUD 操作,并且提供了类 jpa 的数据库操作。
都知道在传统关系型数据库及围绕它们构建的 orm 在项目开发中有很多难用的痛点,然而随着 mongodb 这种文档性数据库的出现,完美的解决了 sql 数据库在项目开发中的诸多痛点,在 mongodb4.0 以后支持了事务,已经可以完美的用于工程项目。spring-data-mongodb 已经对 mongodb 的操作做了一部分封装,但依然不够用,Query 与 Criteria 的操作依然有比较大的局限性,而且对于习惯 sql 操作和 sql orm 的人来说,其使用法则依然稍显别扭。mongoHelper 对 spring-data-mongodb 又进行了进一步封装,补充了 mysql 有但 mongodb 没有的特性,比如字段默认值,使其更易于使用,更接近与关系型数据库 orm 库,并添加了很多易于项目管理的功能。
0.2.5更新内容
本次更新内容
完善查询语句的打印,增删改查都可进行打印
完善数据库导入导出功能,减少内存占用
其他一些代码写法上的优化,增加了一些数据库操作方法
Spring Boot集成mongoHelper
第一步:增加pom引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
第二步:注入MongoTemplate
在对应的Dao层注入 MongoTemplate。
第三步:获取集合
mongoTemplate.getCollection(mongoTemplate.getCollectionName(entityClass)).distinct(key, query.getQueryObject())
第四步、增加操作(插入)
可以一次性插入一个 对象集合 ,也可以一次只插入一个对象 ;当需要插入的大数据量的时候,首先推荐使用批量插入,提升插入性能。
代码示例:
List<UserInfo> userList = new ArrayList<UserInfo>();
userList.add(new UserInfo(1,"1","孙悟空","金箍棒"));
userList.add(new UserInfo(2,"2","猪八戒","耙子"));
userList.add(new UserInfo(3,"0","唐僧","杖"));
mongoTemplate.insert(userList, "userList");
备注:
同一个mongo集合中,前后插入的数据 对象类型要一致
实体类需要用注解标识:
@Document(collection = “xxx”):用于实体类上,表明这是一个MongoDB的文档集合,相当于MySQL的数据表;其中collection表示集合名称,不写则默认为实体类名称
@Id:用于实体类中的成员变量,表示主键标识
@Field(“xxx”):用于实体类中的成员变量,表示MongoDB文档集合中的字段,其值对应集合的字段名称。
总结
虽然一些复杂的查询和更新还需要禽兽编写构造Query和Update,但是大部分情况足够满足的。
注意:本文归作者所有,未经作者允许,不得转载