Mybatis自动化生成sql组件 —by 九根刺的刺猬
自制基于mybatis简易数据库交互组件,用户引入jar包后,只要在dao层继承BaseDao类接口,就能实现类似于jpa规划似的数据库操作,无需在配置mapper.xml和写sql代码,数据通过参数传入即可。文章末尾提供jar包的下载地址,有兴趣的小伙伴可以下载试试。
一、需求背景及需求目标
1.需求背景:mybatis提供了便捷的数据库cudr操作的方式,但是传统的mybatis的使用,需要根据数据库表的映射,形成一一对应的实体类,以及创建复杂对应实体的mapper.xml 的映射文件,sql语句编写也比较麻烦,还是需要在mapper中窜写完整的sql语句脚本,影响开发效率,所以个人在此背景下自制封装了该组件,力求尽量不写mapper.xml,不写sql语句,只通过像类方法一样调用cudr操作,数据通过传参即可完成,用户只要写dao层就行。
2.需求目标:通过该组件,实现与数据库的cudr操作,不在通过mapper.xml来进行配置,尽量不写sql语句,而是像普通方法一样,简单调用存储,或者更新等方法,传入相应的参数即可,组件自动帮我生成sql与数据库进行操作;同时抛弃传统的实体类与数据库表以及与mapper.xml文件必须一一对应的关系,更加自由的编写相关dao层代码。
二、组件功能和使用
组件主要功能:
- 提供像类方法一样的对mysql数据库cudr操作,无需编写mapper.xml配置及传统sql语句;库表名称、字段通过参数进行传入相应方法即可。
- 提供数据库与实体类自动映射,无需通过xml配置,且通过类似jpa规范的@column注释标签,可以实现通过标签注释来实现与库表字段进行映射,而不用要求实体属性名必须与库表字段名保持一致,或需要实体类要求在某个特定的扫描包下。
- 提供分页查询功能,传入相应的参数,即可查出分页的内容
- 提供log4j日志打印,每调用相关的cudr操作的方法,控制台都会打印出自动生成的相关sql语句日志,可用于日后debug等操作。
组件的使用:
前提:该组件依赖与spring框架及mybatis组件框架,所以在使用时请确保已经引入了相关依赖的jar包(spring项目和springboot项目都能直接使用),以及因为组件还使用了log4j日志打印功能,所以也需要依赖与log4j的jar包。
-
组件已经打包成jar包的形式,普通web项目可以直接把jar把放到相应的lib目录下就能使用,maven项目可以在任意目录下创建lib包,将jar包放入后,pom.xml配置里加入下面这段话引入jar包
autoCreateSql
autoCreateSql
1.0
system${project.basedir}/src/main/lib/noSqlMybatis-1.0-SNAPSHOT.jar
-
引入组件jar包后就可以正式开始使用了.
在相应的dao层类中,只要继承BaseDao,就能使用相应的增删改查的方法了,无需mapper.xml配置。
示例如下:
对应库表数据的实体类代码示例如下:
实体类提供了@Column标签注释,可以通过该标签来实现与数据库字段的一一对应,如果属性没有该标签,则根据属性名称与数据库字段对应。