最近在帮项目封装分页的时候,本来想用mybatis拦截器,后来想着这样太重量级了,并且跟项目耦合,所以决定封装一个轻量级的工具,再后来发现,一些基础的增删改查,分页,模糊查询,大于小于不等于,in,notin 这些全都可以封装进去。现在是封装好测试后,想着贴部分代码过来,供大家参考。
源代码已经被我封装成了easySql.jar
源码已上传,1.0.2地址(基于spring):https://download.csdn.net/download/qq_37527048/10522072
1.0.5地址(原生):https://download.csdn.net/download/qq_37527048/10531818
1.0.6地址(代码优化,并支持多数据源):https://download.csdn.net/download/qq_37527048/10580116
1.0.8地址 (优化更新,支持自定义语句,支持外部传入connection):https://download.csdn.net/download/qq_37527048/10770020
1.1地址 (优化多条件查询方式,支持or语句,支持多种排序,支持自定义返回字段,支持自增语句,使用语句执行器行事,见文章最后,代码写起来更容易,支持一次插入多条):https://download.csdn.net/download/qq_37527048/11676013
可以加我qq:547595531 0o①唔溹Ai¢
资源为maven配置,解压后放在本地maven库的com下就好了,全路径名下图所示
接下来新建一个项目demo,添加pom.xml依赖以及扫描配置
然后再创建一个与数据库关联的bean,这里需要用到我的自定义注解来标注表名和主键。
所有准备工作完成,工具支持直接new,内部配置了连接池,执行新增的时候,会自动将主键返回
当然我的工具提供了很多个基础方法,都是依据参数属性来操作,例如:
除此之外,还有稍微进阶的操作,看官请看,那就是支持排序:
还有更进一层的是如下,支持单表聚合查询及模糊查询,演示一下:
自由拼接,想怎么查就怎么查。
另外还有一点比较重要的是,工具对事务的支持。在需要开启的地方加上@EasySqlTransaction即可,不加的话默认自动提交
如果有其他需要,我这里另外提供了两个注解,@TableIgnore和@TableField,分别用来表示不需要添加到数据库的属性(数据库无此字段)和与数据库字段不一致的属性名,如下图
我的核心思想是作为工具类,简化开发流程及代码,前提是小白或小型项目下没有架构师等大牛帮助写框架。我这个东西不与你的任何框架耦合,可以单独使用,也可以联合你框架使用,完全轻拿轻放。随心所欲。
工具里自己做了连接池,书写sql采用的预编译模式,不存在sql注入问题。工具有三个构造器,分别的
1.默认无参,内部自动使用druid连接池,并扫描项目下的perproties文件获取数据库配置信息。
2.参数可设置url username password数据库信息,工具不再扫描,直接开启druid
3.参数接收一个连接池,工具则会使用项目中连接池,不启用druid
以下为部分源码:
获取数据库配置信息,并添加到连接池
查询当前调用链使用含有事务注解
提供三种构造器
获取数据库连接
判断当前调用链是否含有事务及提交事务
重载多种查询方法
取参数时各种注解判断
一些小问题的解释
sql执行器形式多条件查询
函数式调用,例如:
//创建链接
EasySqlExecution execution = new EasySqlExecution();
//创建执行器
SqlExecuter se= new SqlExecuter(new UserBean());
//函数是调用(名字含有小明,id大于10,年龄在这个范围之内)
se.like("name","小明").gte("id",10),in("age",new ArrayList(Integer)).....
//执行数据库查询
List