不忘初心

最开始接触写代码的时候,用的是C井,查数据库直接硬编码sql,挺难受的。

后来学习到EntityFramework,用起来是真香,都是强类型,各种智能提示,代码写起来极度舒适,效率起飞。

最近要用java搞项目,接触了mybatis,玩的sql语句放xml,瞬间不香了。

一顿百度,想找个类似EntityFramework的类库来查数据库,找到mybatis-plus,

介绍是支持lambda查数据,再研究了下发现和自己想要的很不一样,特别是多表多条件查的场景。

最后是自己动手,丰衣足食。

使用方法

maven坐标

<dependency>
  <groupId>io.github.eeroom</groupId>
  <artifactId>nalu</artifactId>
  <version>2.4</version>
</dependency>

默认约定

1、创建和数据库表同名的poco类,类的字段名称和表的列名称一致

  对于字段的类型是枚举的情况,数据库必须是varchar,nalu才可以正常处理字段和列值之间的值映射

2、创建一个数据库对应的dbcontext类,这个类需要继承io.github.eeroom.nalu.DbContext。

3、当前支持的数据库有mysql,mariadb,sqlserver。

e.g.

java集合中如何根据条件取区间值 java按条件查询数据库_java集合中如何根据条件取区间值


java集合中如何根据条件取区间值 java按条件查询数据库_事务隔离级别_02


java集合中如何根据条件取区间值 java按条件查询数据库_API_03

查,API列表

dbset 指定要查询的表,每个查询都从这个方法开始

select 指定要查询的列,2个重载

join 连接表,有2个重载方法

where 筛选,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法

groupBy 指定分组

having 分组筛选,多个重载

orderBy 排序,顺序

orderByDescending 排序,逆序

skipTake 分页

toListByPaging 获取分页查询结果,多个重载

toList 获取查询结果,不分页,多个重载

e.g.

java集合中如何根据条件取区间值 java按条件查询数据库_事务隔离级别_04

增,API列表

add 指定要新增的数据,支持批量,多个重载

setInsertCol 指定要赋值的列,对应sql语句中要set value的列,2个重载

saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行

e.g.

java集合中如何根据条件取区间值 java按条件查询数据库_API_05

删,API列表

delete 指定要要删数据的表或具体要删的数据,支持批量,多个重载

where 筛选条件,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法

saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行

e.g.

java集合中如何根据条件取区间值 java按条件查询数据库_数据库_06

改,API列表

edit 指定要要修改的表或具体要修改的数据,支持批量,多个重载

setUpdateCol 指定要修改的列

where 筛选条件,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法

saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行

e.g.

java集合中如何根据条件取区间值 java按条件查询数据库_API_07