创建需要生成的数据表
数据表结构
CREATE TABLE `scheduler` (
`scheduler_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`name` varchar(30) DEFAULT NULL COMMENT '任务名称',
`groud` varchar(30) DEFAULT NULL COMMENT '任务所在的组',
`cron` varchar(100) DEFAULT NULL COMMENT '任务时间表达式',
`create` datetime DEFAULT NULL COMMENT '任务创建时间',
PRIMARY KEY (`scheduler_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='任务调度表'
创建Mybatis代码自动生成配置文件
默认名称为:generatorConfig.xml
该配置文件适用于Mysql,其他数据库未进行测试。
使用该配置文件需要修改的地方
1. jdbcConnection :数据库名称,用户名,密码。
2. targetPackage :生成代码的目录
3. table 需要生成的数据表
4. 如果是用在Eclipse上,targetProject=”src/main/java/“ 应当修改为 targetProject=”项目名称/src/main/java/”,IDEA不需要工程名称。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- <classPathEntry location="F:\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/> -->
<classPathEntry location="/home/lgj/.m2/repository/mysql/mysql-connector-java/5.1.29/mysql-connector-java-5.1.29.jar"/>
<context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!-- 设置数据库关键字分隔符 -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 设置生成Java文件的编码 GBK或者UTF-8 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!--配置生成注释信息,最多配置一个 -->
<commentGenerator>
<!-- 阻止生成注释包含时间戳 默认为false -->
<property name="suppressDate" value="true"/>
<!-- 注释是否添加数据库表的备注信息 默认为false -->
<property name="addRemarkComments" value="true"/>
</commentGenerator>
<!-- 配置数据库连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/spring_boot"
userId="root"
password="563739007">
</jdbcConnection>
<!-- 用来控制生成的实体类 -->
<!-- targetPackage 生成文件存放的目录-->
<!--
targetProject:
.java 放置在src/main/java/下
`````.xml 放置在src/main/resources/下
-->
<!-- targetPackage 生成文件存放的目录-->
<javaModelGenerator targetPackage="com.ch12.dao.model"
targetProject="src/main/java/">
<!-- 判断是否对数据库查询结果进行trim操作 -->
<!-- = true则 this.userName = userName == null ? null : userName.trim(); -->
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!-- 设置生成Mapper.xml文件的属性 位置 可选-->
<sqlMapGenerator targetPackage="com.ch12.dao.mapper"
targetProject="src/main/resources"/>
<!-- 用于设置 接口类的属性-->
<!--
targetRuntime=MyBatis3:
1.ANNOTATEDMAPPER 基于注解的MAPPER接口,不会有对应的XML文件
2.MIXEDMAPPER xml和mapper混合形式
3.XMLMAPPER 所有的方法都在XML中,接口调用依赖XML文件
targetRuntime=MyBatis3Simple:
1.ANNOTATEDMAPPER 基于注解的MAPPER接口,不会有对应的XML文件
2.XMLMAPPER 所有的方法都在XML中,接口调用依赖XML文件
-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.ch12.dao.mapper"
targetProject="src/main/java"/>
<!-- os_favorites os_receipt_address os_receipt_address os_user_login -->
<!-- 可以配置多个table,每个表单独配置-->
<!-- type="post" identity="true" : ORDER = AFTER -->
<!-- type="pre" identity="false"(only the value) : ORDER = BEFORE -->
<!-- 配置需要生成的表 ,如果需要执行时返回主键,就设置generatedKey-->
<table tableName="scheduler">
<generatedKey column="scheduler_id" sqlStatement="MySql"/>
</table>
</context>
</generatorConfiguration>
配置Maven插件
工程pom文件中添加插件
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!--注意这里的 resources/generator/generatorConfig.xml 要与你上面的命名和放置的位置匹配-->
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
配置运行
选择Maven选项。
working directory选择你的工程目录。
Command line 填入:mybatis-generator:generate -e
最后确认并运行即可。
运行后出现BUILD SUCCESS说明生成成功,找到相应目录即可发现代码和配置文件已经生成。
[INFO] Generating Record class for table scheduler
[INFO] Generating Mapper Interface for table scheduler
[INFO] Generating SQL Map for table scheduler
[INFO] Saving file SchedulerMapper.xml
[INFO] Saving file Scheduler.java
[INFO] Saving file SchedulerMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.364 s
[INFO] Finished at: 2018-07-05T14:42:05+08:00
[INFO] Final Memory: 14M/48M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0