idea使用mybatis generator自动生成代码(mo
2018-10-27 本文已影响274人
韩明泽
mybatis的自动生成代码,网上主要有两种方式。一种是使用idea的插件生成,另外一种则是直接在项目中集成jar或在maven中导入依赖;然后配置generatorConfig.xml文件。两种方式各有利弊吧。第一种使用起来方便,但是不能定制。第二种虽然配置起来麻烦点,但是可以根据自己的情况进行定制。最近在学习springboot的时候看到另外一种自动生成的方式。在module中配置生成。(其实也就是第二种的另类使用)
1、在项目中创建module
image2、配置module的pom.xml文件
在配置文件中加入下面代码:
<dependencies>
<!--MySQL数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<!-- mybatis 逆向生成工具 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
</dependencies>
3、配置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="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!--指定生成的xxxMapper文件要继承的MyMapper类的路径-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.han.utils.MyMapper"/>
</plugin>
<!--连接数据库-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/testMybatisGenerator"
userId="root"
password="root">
</jdbcConnection>
<!-- 对应生成的pojo所在包 -->
<javaModelGenerator targetPackage="com.han.pojo"
targetProject="mybatis-generatorConfig/src/main/java"/>
<!-- 对应生成的mapper所在目录 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="mybatis-generatorConfig/src/main/resources"/>
<!-- 配置mapper对应的java映射 -->
<javaClientGenerator targetPackage="com.han.mapper"
targetProject="mybatis-generatorConfig/src/main/java"
type="XMLMAPPER"/>
<!--添加要生成的数据库对应表名-->
<table tableName="testTable"></table>
</context>
</generatorConfiguration>
4、添加执行生成的java类
改java类主要执行自动生成代码,并且指定generatorConfig.xml文件的路径。
我的java类命名为GeneratorDisplay.java
:
package com.han.mybatis;
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 GeneratorDisplay {
public void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定逆向工程配置文件
File configFile = new File("mybatis-generatorConfig/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
5、添加MyMappe类
该类要和在generatorConfig.xml中填写的路径要一致。
image
完整代码如下:
package com.han.utils;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
//TODO
//FIXME 特别注意,该接口不能被扫描到,否则会出错
}
6、自动生成代码
上面的步骤配置完之后,运行GeneratorDisplay.java就可以生成mapper文件以及pojo
image完成!
如果有时间的话,建议看一看下面的相关连接。!0z0!
相关连接