一、mybatis逆向工程
1.1 在pom文件里加入插件 写好配置文件的路径
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
</dependencies>
<configuration>
<!--配置文件的路径-->
<configurationFile>src/main/resource/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
</plugin>
1.2 在 resource 文件夹下创建 generatorConfig.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" >
<generatorConfiguration>
<context id="test" targetRuntime="MyBatis3">
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<commentGenerator>
<!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示保护 -->
<!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->
<property name="suppressDate" value="true" />
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/weight-one" userId="root"
password="123456">
</jdbcConnection>
<javaTypeResolver>
<!-- This property is used to specify whether MyBatis Generator should
force the use of java.math.BigDecimal for DECIMAL and NUMERIC fields, -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<!-- targetPackage 对应包名 java目录的下一级开始-->
<!-- targetProject 对应项目名 从src开始 -->
<javaModelGenerator targetPackage="cn.blog.model"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="cn.blog.mapper"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.blog.mapper" implementationPackage="cn.blog.service.impl"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成哪些表 -->
<table tableName="t_goods" domainObjectName="TGoods"></table>
</context>
</generatorConfiguration>
1.3 双击 maven 插件
1.4 在配置的生成路径里面就能找到相应的 mapper entity 和xml映射文件
二、mybatisplus 逆向工程
2.1 在pom文件里面加入以下依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<!--不需要添加 Mybatis及Mybatis-Spring依赖,Mybatis-Plus会自动维护-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- 数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
2.2 编写生成工具
/**
* @author fkk
* @date
*/
public class MpGenerator {
private static String url = "jdbc:mysql://127.0.0.1:3306/master?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai"; //数据库地址
private static String user = "root";//账号
private static String password = "123456"; //密码
private static String dirverName = "com.mysql.jdbc.Driver"; //驱动
private static String author = "fkk"; //作者
private static String outputDir = "src\\main\\java"; //生成路径
private static String packageName = "domain";//生成的东西放在这个包里
public static void main(String[] args) {
// 要生成代码的表名配置
String[] tables = {
"sys_user",
};
GlobalConfig config = new GlobalConfig();
String dbUrl = url;
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)
.setUrl(dbUrl)
.setUsername(user)
.setPassword(password)
.setDriverName(dirverName);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
.setCapitalMode(true)
.setEntityLombokModel(false)
.setDbColumnUnderline(true)
.setInclude(tables)
.setNaming(NamingStrategy.underline_to_camel) //开启下划线转驼峰
.setEntityBuilderModel(true)
.setDbColumnUnderline(true)
.entityTableFieldAnnotationEnable(true); // 设置为true 实体字段会自动加 @TableField 注解
config.setActiveRecord(false)
.setEnableCache(false)
.setAuthor(author)
.setOutputDir(outputDir)
.setFileOverride(true)
.setServiceName("%sService");
new AutoGenerator().setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(
new PackageConfig()
.setParent(packageName)
.setController("controller")
.setEntity("entity")
).execute();
}
}
2.3 运行工具即可生成 controller entity service 和mapper