--- layout: post title: mybatis-generator反向生成 category: 技术 tags: Mybatis keywords: description: update:2018-02-01 --- {:toc} ## 创建mysql数据库及表 手动创建数据库,utf-8编码 导出创建表的sql ```sql /* Navicat MySQL Data Transfer Source Server : 172.20.19.200-test Source Server Version : 50629 Source Host : 172.20.19.200:3306 Source Database : test2 Target Server Type : MYSQL Target Server Version : 50629 File Encoding : 65001 Date: 2016-07-21 15:50:02 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for esm_palmyy_dept_relation -- ---------------------------- DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '当前表的主键', `name` varchar(255) NOT NULL COMMENT '名称', `desc` varchar(255) NOT NULL COMMENT '描述', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` ## 在maven项目中配置Mybatis-generator插件 ### 将`generatorConfig.xml`放在`src/main/resources`下。 `generatorConfig.xml`的内容为: ```xml
``` 如上配置文件所示,Mybatis自动生成的一般配置就完成了。 **注意:配置文件中标签必须按照顺序来编写,否则在生成代码时会报错。** - 原因 按顺序排序是由文件定义的,其中有内容为 ```DTD ``` 这句话意思是context标签下的元素必须按照以上顺序编写,而如上的设置方式是根据DTD文件定义设置的。 dtd的修饰符号: ![dtd的修饰符号](//raw.githubusercontent.com/George5814/blog-pic/master/image/mybatis/dtd-definition.jpg) - 错误内容: XML Parser Error on line 23: 元素类型为 "context" 匹配 "(property*,plugin*,commentGenerator?,(connectionFactory \|jdbcConnection),javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)"。 - 标签的配置顺序如下 ```xml 或者 ``` ### 在`pom.xml`中添加Mybatis生成插件的依赖 ```xml org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 true true src/main/resources/generatorConfig.xml mysql mysql-connector-java 5.1.36 ``` ## 生成代码 在项目的根目录(即`pom.xml`文件所在目录),通过执行maven命令`mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate`在指定位置生成java代码和`*mapper.xml`sql映射文件。 一个`generatorConfig.xml`配置文件可以配置多个``标签,但必须设置id属性,并且设置唯一id值,在生成代码的命令中,可以通过指定context集合(逗号分隔)对指定的context的配置生成代码。命令为`mvn mybatis-generator:generate -Dmybatis.generator.contexts=contextId1,contextId2`