java对数据库sql进行增删改查的封装,单表操作将不再需要写sql语句

最近在帮项目封装分页的时候,本来想用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<UserBean> result = execution.select(se);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值