分类
Java 笔记

原创 Mybatis Generator 插件分享

相信很多java项目都会用到MyBatis。MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

以前使用Mybatis时,都会用基于XML的配置。XML配置方式虽然灵活但烦锁,所以后面又有了基于注解的配置。但是基于注解配置的方式又不够灵活。比如Mybatis强大的动态SQL语句功能,如果使用注解,只能用代码实现相应的Provider达到相同功能。为了解决这个问题,以前自己定过一些使用规范(增、删、改操作用注解,查询用XML配置),也按这个规范写过一个ORM框架。自己写的框架苦于精力有限,没有维护,有些功能不够完善,所以没有在大项目中使用。直到有一天发现Mybatis Generator,我觉得一切都解放了。

简单来说,Mybatis Generator就是用来生成XML配置的,它会创建XML映射和SQL语句。能自动生成XML映射关系和SQL语句,不仅减少了错误,也极大地提高了工作效率。Mybatis Generator默认生成的SQL查询语句是没有分页功能的,所以自己写了一个分页插件。关于分页插件,网上也有相应的实现,但没有排序和时间筛选功能。关于Mybatis Generator资料又比较少,所以结合官方文档,花了一下午终于完成这个插件。

这个插件是去年下半年的某一天完成的,后面有过改造,一直应用到现在的项目中。现在是很成熟了,所以分享出来。对于实现的原理不做多述,主要是讲用法,有兴趣可以自己看插件实现。

1.配置文件:

2.生成文件内容如下:



可以看到,UserMapper会继承IPagingDao,而IPagingDao是我定义的一个接口。

在IPagingDao中,会有查询数据和查询数据条数方法。参数说明:
condition – 条件
dateBetween – 日期(指定一个日期字段,并设置开始结束日期)
paging – 分页信息,提前设置好要查询的页数
sort – 排序(指定一个字段,设置排序方式)
以上条件,没有传null。如果分页传null,则会查出所有数据。
使用时,只需要使用UserMapper就可以了。比如在spring框架中,只需注入UserMapper。

3.类说明
SortModel:

column对应数据库列名,method指排序方法。在构造方法中传入就可以了。升序和降序可以使用 SortModel.ASC 或 SortModel.DESC
DateBetweenModel:

column对应数据库列名,startDate和endDate分别指开始日期和结束日期
PagingModel:

paging对象在代码中有注释就不多说了。其中,在setCount时会自动计算出页数,前提是一定要设置row(每行显示数据条数)

4.Demo下载:
mybatis-generator-demo
目录介绍

我已将原码传到github上了。这个插件功能只是这个项目的一部分,以后github上项目的功能会越来越多。如果只是需要mybatis generator插件,使用上面的demo就可以了,清晰明了。github上还有其他工具一直也有维护和更新,希望大家多多支持。
github:https://github.com/wangzhengzhen/website

“原创 Mybatis Generator 插件分享”上的1条回复

发表评论

电子邮件地址不会被公开。