最近做项目,ORM 使用的是 MyBatis,为了偷懒,我自然而然的想到了使用 MyBatis Generator(MBG)来生成数据库表对应的实体代码和 Mapper 代码。于是做了如下的配置(对 MBG 配置不熟悉的同学可以参考 Mybatis Generator最完整配置详解):
/p>
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
数据库建库建表的代码:
CREATE SCHEMA `db_test` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
CREATE TABLE `db_test`.`t_user` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '用户 ID',
`username` VARCHAR(30) NULL COMMENT '用户名称',
`password` VARCHAR(20) NULL COMMENT '用户密码',
`birthday` DATE NULL COMMENT '用户生日',
PRIMARY KEY (`id`),
UNIQUE INDEX `username_UNIQUE` (`username` ASC)
) COMMENT = '用户';
开开心心,执行命令,开始生成代码:
java -jar mybatis-generator-core-1.3.7.jar -configfile generatorConfig.xml -overwrite
然后查看生成的 Java 实体类:
看着这个注释,让我有点纠结啊 —— 为什么不是数据库中每个字段对应的注释呢?查找相关资料,得知 MBG 生成的是由 org.mybatis.generator.api.CommentGenerator 来控制的。这是一个接口,MBG 的默认实现类是 org.mybatis.generator.internal.DefaultCommentGenerator。当你在 generatorConfig.xml 中配置了 commentGenerator 标签,那么默认状态下,生成注释的工作,将由 DefaultCommentGenerator来完成。 所以我们来查看下这个 DefaultCommentGenera