原创,分享,在java中使用lambda查询数据库
不忘初心
最开始接触写代码的时候,用的是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.
查,API列表
dbset 指定要查询的表,每个查询都从这个方法开始select 指定要查询的列,2个重载join 连接表,有2个重载方法where 筛选,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法groupBy 指定分组having 分组筛选,多个重载orderBy 排序,顺序orderByDescending 排序,逆序skipTake 分页toListByPaging 获取分页查询结果,多个重载toList 获取查询结果,不分页,多个重载e.g.
增,API列表
add 指定要新增的数据,支持批量,多个重载setInsertCol 指定要赋值的列,对应sql语句中要set value的列,2个重载saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行e.g.
删,API列表
delete 指定要要删数据的表或具体要删的数据,支持批量,多个重载where 筛选条件,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行e.g.
改,API列表
edit 指定要要修改的表或具体要修改的数据,支持批量,多个重载setUpdateCol 指定要修改的列where 筛选条件,支持简单或复杂的where条件,任意函数,包括你的自定义函数,有多个重载方法saveChange 执行操作,可以指定事务隔离级别,2个重载,增删改的任意多个组合在一次saveChange中则为一个事务进行执行e.g.
作者:eeroom
来源链接:https://www.cnblogs.com/eeroom/p/15771311.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。