Mybatis逆向工程
Springboot2.x+Mybatis3.x
一、依赖
<!--mybatis代码生成器插件-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
二、XML配置文件
<?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" >
<!--mybatis自动生成器配置-->
<generatorConfiguration>
<!--数据库的jdbc驱动的jar包地址-->
<classPathEntry location="E:/study/mysql-connector-java-8.0.20.jar"/>
<!--targetRuntime="MyBatis3" 会默认生成example文件-->
<context id="MySqlTables" targetRuntime="MyBatis3">
<commentGenerator>
<!--是否去除自动生成的注释 true:是; false:否-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库连接信息:驱动类、链接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/myblog?serverTimezone=GMT%2B8"
userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<!--类型解析器-->
<!-- 默认false,把jdbc decimal 和 numeric 类型解析为integer -->
<!-- true,把jdbc decimal 和 numeric 类型解析为java.math.bigdecimal-->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.finn.springboot002.system.entity"
targetProject="src/main/java">
<!-- 是否让schema作为包后缀-->
<property name="enableSubPackages" value="true"/>
<!-- 从数据库返回的值被清理前后的空格-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件xml的包名和位置-->
<sqlMapGenerator targetPackage="mappers"
targetProject="src/main/resources">
<!-- 是否让schema作为包后缀-->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成Dao接口的包名和位置-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.finn.springboot002.system.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 用于自动生成代码的数据库表;生成哪些表-->
<table tableName="sys_user">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
三、编码生成
package com.finn.springboot002.system.generator;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MyBatisGenerators {
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<>();
// 如果已经存在生成过的文件是否进行覆盖
boolean overwrite = true;
//根据项目目录去找
File configFile = new File("src/main/resources/generator-configuration.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings);
generator.generate(null);
}
}
四、总结
关于generator-configuration.xml文件路径
此文件是放在resources资源目录下。
File configFile = new File("src/main/resources/generator-configuration.xml");
File会从你的项目根目录,也就是src所在目录开始找。所以可以写成
src/main/resources/generator-configuration.xml
如果是/src/main/resources/generator-configuration.xml
多加个正斜杠是找不到的,此时的目录是你程序所在盘符,比如我的就是在E:/
关于生成Example类的原因
targetRuntime=“MyBatis3” 会默认生成example文件
table标签添加如下属性:
<table tableName="sys_dept" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
感谢大佬们,此处是相关借鉴出处
自认为下面这个讲的特别详细~
mybatis代码自动生成
SpringBoot配置文件的加载位置
有一个大佬的文章找不到了。。。如有侵权,联系删除!