可以看到SQL的逻辑用Java代码表示了,不容易维护。所以一般是配置不生成Example类
在generatorConfig.xml配置文件中配置项设为false即可,完整版看GitHub,这里省略了一部分配置
<table tableName="student" enableCountByExample="false" enableUpdateByExample="false"> </table>
这样生成的Mapper文件中就只包含最基础的增删改查,没有这些乱七八糟的Example了
下面就是修改后生成的全部内容,是不是看着清爽多了
public interface StudentMapper { int deleteByPrimaryKey(Integer id); int insert(Student record); int insertSelective(Student record); Student selectByPrimaryKey(Integer id); int updateByPrimaryKeySelective(Student record); int updateByPrimaryKey(Student record); } 如何定义Java类型和数据库类型的映射关系
还是上面的例子,我生成的Student对象如下
public class Student { private Integer id; private String name; private Byte gender; private LocalDateTime createTime; }
数据库中的datetime被映射为LocalDateTime 类型(用起来比较方便),这是我配置的原因。默认的是、datetime被映射为Date类型
在generatorConfig.xml有2种配置的方式
第一种,这个是全局的,针对所有表
<javaTypeResolver> <property name="useJSR310Types" value="true"/> </javaTypeResolver>
第二种,这个只针对表中某一列
<table tableName="student" domainObjectName="Student"> <columnOverride column="create_time" javaType="java.time.LocalDateTime"/> </table>
这两种方式还可以定义其他类型的映射方式,我就不再介绍了。知道方法查询具体配置就行
后记话说刚开始用MyBatis Generator的坑还是挺多的,要不就是在低版本的插件中,这个配置不起作用
<javaTypeResolver> <property name="useJSR310Types" value="true"/> </javaTypeResolver>
要不就是在最新的插件中,重新生成时,虽然配置了每次覆盖XML文件,但是不会起作用(这个一般都会配置,假如是追加的方式,会造成运行2次插件,一个接口在XML中对应2个语句,导致启动错误),还得配置作者为解决这个问题专门写的插件,为了大家少走弯路,我写了一个demo,各种配置写的很详细。基本上改改配置就能用,坑我都替大家填了,关注微信公众号Java识堂,回复配置即可获得GitHub地址,欢迎star。
本文为小编原创文章,首发于Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注
,