分类
Java

Mybatis Generator 1.4.0 发布

Mybatis Generator是一个自动代码工具,此版本相较于旧版本有很多重要的更新。

Mybatis Generator目前有5种运行模式,分别为:MyBatis3DynamicSql、MyBatis3Kotlin、MyBatis3、MyBatis3Simple、MyBatis3DynamicSqlV1。

<context id="MysqlTables" targetRuntime="MyBatis3DynamicSql" defaultModelType="flat">
 <!-- 省略中间 -->
</context>

1、MyBatis3、MyBatis3Simple是比较老的模式,通常生成mapper接口、model实体和XML文件(当javaClientGenerator type为 ANNOTATEDMAPPER 时不生成XML)。这两种模式生成的文件只需要依赖Mybatis3即可正常工作,但是对于很多操作不支持。如果想要使用数据库函数或者多表联合查询,这种模式下是不支持的,需要写额外的SQL。

2、MyBatis3DynamicSqlV1是比较新的模式。除了需要依赖Mybatis3以外,还需要mybatis-dynamic-sql才能正常工作。相比上面的老模式,这种模式更加方便。

分类
Java 编程

再见Mybatis Generator,你好Mybatis Plus

很久以前就使用Mybatis开发,Mybatis官方出品的Mybatis Generator能够自动生成Mapper和XML映射文件,提供基本的CRUD操作方法。

Mybatis Generator生成Entity同时可以生成Example,做为条件对像查询,避免写SQL。Example会跟据字段生成and,or,like等方法,也有eq,lt,gt,le,lt等比较方法和order by排序。

Mybatis Generator生成的SQL语句不提供数据库分页和排序,很多功能实现起来需要插件。我以前也写过分页插件,自定义封装了一个DaoService。在分页插件中增加了like查询,传入Entity跟据字段是否为空做条件用and查询。因为大多情况都是and查询,封装后很多操作不需要写SQL,也不需要用代码判断条件,提高了开发效率。

最近的项目用上了Mybatis Plus,虽说是第一次用,但很多东西与Mybatis Generator相似。Mybatis plus作者说,只在Mybatis上做增强,不做修改。因为这点我很钟意这个框架。

分类
Java

Mybatis Generator 不识别主键

错误场景描述:

在使用mybatis-Generator生成xml时,不生成Example,在<table>标签中添加enableCountByExample=”false”
enableDeleteByExample=”false”
enableSelectByExample=”false”
enableUpdateByExample=”false”

在生成xml文件时,应该有insert、insertSelective、selectByPrimaryKey、updateByPrimaryKeySelective、updateByPrimaryKey、deleteByPrimaryKey等方法,但是在生成的xml文件中只有insert、insertSelective。后来看xml文件中的resultMap节点里主键id使用的是result标签,而不是id标签。可能是主键没有被识别。