mongoHelper 0.3.9 发布,spring-data-mongodb 增强工具包,简化 CRUD 操作

代码鄙视员 2020-11-19 00:20:59 ⋅ 802 阅读

mongoHelper 是基于 spring-data-mongodb 的增强工具包,简化 CRUD 操作,提供类 jpa 的数据库操作。

传统关系型数据库及围绕它们构建的 orm 在项目开发中有很多难用的痛点,而 mongodb 这种文档性数据库的出现,完美的解决了 sql 数据库在项目开发中的诸多痛点,在 mongodb4.0 以后支持了事务,已经可以完美的用于工程项目。spring-data-mongodb 已经对 mongodb 的操作做了一部分封装,但依然不够用,Query 与 Criteria 的操作依然有比较大的局限性,而且对于习惯 sql 操作和 sql orm 的人来说,其使用法则依然稍显别扭。mongoHelper 对 spring-data-mongodb 又进行了进一步封装,补充了 mysql 有但 mongodb 没有的特性,比如字段默认值,使其更易于使用,更接近与关系型数据库 orm 库,并添加了很多易于项目管理的功能。

使用mongoHelper之后, 能够进行类似与大多数mysql orm一样的查询分页语句封装

public Page search(Page page, String word, Integer type) {
    CriteriaAndWrapper criteriaAndWrapper = new CriteriaAndWrapper();

	if (StrUtil.isNotEmpty(word)) {
		criteriaAndWrapper.and(new CriteriaOrWrapper().like(User::getName, word).like(User::getPhone, word));
	}
	if (type != null) {
		criteriaAndWrapper.eq(User::getType, type);
	}
	page = mongoHelper.findPage(criteriaAndWrapper, new SortBuilder(User::getCreatTime, Direction.DESC), page, User.class);

	return page;
}

单表操作语句也变得简单

  • 按id删除:mongoHelper.deleteById(String, Class<?>)
  • 按条件删除:mongoHelper.deleteByQuery(Criteria, Class<?>)
  • 查询所有:mongoHelper.findAll(Class)
  • 查询数量:mongoHelper.findCount(Class<?>)
  • 根据id查询:mongoHelper.findById(String, Class)
  • 根据条件查询:mongoHelper.findListByQuery(Criteria, Class<?>)
  • 根据条件查询并分页:mongoHelper.findPage(Criteria, Page, Class<?>)
  • 插入:mongoHelper.insert(Object)
  • 插入或更新:mongoHelper.insertOrUpdate(Object)
  • 根据id更新:mongoHelper.updateById(Object)
  • 根据id更新全部字段:mongoHelper.updateAllColumnById(Object)
  • 根据条件更新第一项:mongoHelper.updateFirst(Criteria, Update, Class<?>)
  • 根据条件更新所有项:mongoHelper.updateMulti(Criteria, Update, Class<?>)

对查询语句的打印也格式化规范化, 可直接放到数据库客户端执行

db.admin.find({
    "$and": [
        {
            "name": {
                "$regex": "^.*ad.*$",
                "$options": "i"
            }
        }
    ]
}).projection({
    "name": 1
}).sort({
    "id": -1
});

本次更新内容

1.添加使用Lambda获取字段名的方法

2.增加对springBoot 2.3.0的支持

3.修复一些bug

代码地址: https://gitee.com/cym1102/mongoHelper


全部评论: 0

    我有话说:

    MongoHelper 0.2.5 发布Spring-Data-MongoDB 增强工具包

    工具包简化 CRUD 操作,并且提供了类 jpa 的数据库操作

    【开源资讯】Spring Data 2020.0 RC2 发布

    Spring Data 2020.0 RC2 发布了。Spring Data 项目的目的是简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架

    Spring Data 2020.0.0 正式 GA

    Spring Data 2020.0.0(代号 Ockham)已正式 GA,这也是更改版本号方案后的首个版本,此前的版本号采用名字来标记,例如 Neumann-RELEASE。 新的版本号格式为

    「尝鲜」SpringBoot 快速整合Swagger 3.0

    第一步:Maven引入Swagger3.0 starter依赖 Maven项目中引入springfox-boot-starter依赖: <dependency> <

    MongoDB 数据库的基本操作(二)

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

    架构实战篇(七):Spring Boot Data JPA 快速入门

    Spring Data JPA 是Spring Data 的一个子项目,它通过提供基于JPA的Repository极大了减少了操作JPA的代码。

    构建数据集成和实时数据处理流水线工具Spring Cloud Data Flow

    Spring Cloud Data Flow 是基于原生云对 Spring XD 的重新设计

    Eclipse OpenJ9 v0.23.0 发布,Java 虚拟机

    Eclipse OpenJ9 v0.23.0发布,Eclipse OpenJ9 是 OpenJDK 的 JVM,此 Java 虚拟机经过优化,具备占用空间小、启动速度快以及吞吐量高等优势。 新

    Spring Boot 2.4.3、2.3.9 版本发布

    Spring Boot 2.4.3 、2.3.9 已经发布。现在可从 repo.spring.io 和 Maven Central 获得。 <parent>   

    Spring Boot 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5 发布

    Spring Boot 多个分支发布了新版本,分别是 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5。 Spring Boot 2.4.0-RC1 此版本是 

    Jedis 3.5.0 发布,Redis 的 Java 客户端开发

    Jedis 3.5.0 发布了。Jedis 是 Redis 官方推荐的面向 Java 的操作 Redis 客户端,与新版本的 Redis 完全兼容。 本次更新内容包括: 增强功能 通过 COUNT

    Spring Cloud Data Flow 2.7.1 发布

    Spring Cloud Data Flow 2.7.1 发布了。Spring Cloud Data Flow 是构建数据集成和实时数据处理流水线的工具包。 主要更新内容 UI 错误修复

    MongoDB系列---数据类型/插入文档(三)

    第一部分 BJSON 与 JSON MongoDB的文档与JavaScript中的对象很相似,JavaScript中的数据交互格式是JSON格式. JSON的数据格式: 1. null;2. 布尔

    Spring Tools 4.9.0 发布

    Spring Tools 4 是由 Spring 团队打造的下一代 Spring 开发工具,基本上是从零开始构建,融合了现代技术和开发者工具架构。它在单独的进程中运行,从构建之初就考虑到了

    Simplenote 2.9.0 发布,开源跨平台云笔记工具

    Simplenote 2.9.0 发布了。Simplenote 是一个简单、轻量级的跨平台云笔记工具,可以用来保存文字、表格、代码等信息,用户记录的内容可以与所有设备保持同步。Simplenote

    MongoDB系列之----概述(一)

    MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

    最全Mac工具

      MacTool Mac 开源免费工具汇总, 只罗列开源好用的。更全列表请参考awesome-mac 必备 Homebrew - 体验通过命令行安装 Mac 软件的工具(大部分是

    工具集001

      1.  Google项目管理工具 Tables   2. 终端 taskwarrior --- TODO List Taskwarrior is

    Apache Wicket 9.3.0 发布,Java Web 开发框架

    Apache Wicket 9.3.0 现已发布。Wicket 是一个 Java 语言的 Web 开发框架,与 Struts、WebWork、Tapestry 相类似,其特点在于对