主要介绍一下mybatis Generator自动生成代码的几种方式。
通过Maven的方式
pom.xml文件中添加插件
<build>
<defaultGoal>compile</defaultGoal>
<plugins>
<!-- mybatis generator插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>D:/genCode/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
执行mvn mybatis-generator:generate
命令。
Eclipse/Itellij Idea安装插件的方式
Eclipse
help --> Eclipse Marketplace....
安装 Mybatis Generator 1.3.7
插件 安装完成如下:
Itellij Idea
按照Maven的步骤,在Pom.xml中添加mybatis-generator
插件。
然后maven projects-->pludins-->mybatis-generator-->mybaits-generator:generator
。右击Run maven build
.
代码的方式
项目添加mybatis-generator
的jar包。
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
自动生成代码:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
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;
/**
* <b>代码生成</b>
*
* 基于mybatis-generator
*/
public class MybatisGenerator {
private static Logger logger = Logger.getLogger(MybatisGenerator.class);
public static void main(String[] args) throws Exception {
logger.info("Start generator ...");
List<String> warnings = new ArrayList<String>();
boolean overwrite = true; // 是否覆盖原来的文件
File configFile = new File("D:\\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);
logger.info("Finish generator");
}
}
关于generatorConfig.xml
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>
<!-- 配置文件路径 -->
<properties resource="mybatis/mysql-generator.properties" />
<!--数据库驱动包路径 -->
<classPathEntry location="${jdbc.driverLocation}" />
<context id="MysqlTables" targetRuntime="MyBatis3">
<!--关闭注释 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="false" />
</commentGenerator>
<!--数据库连接信息 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}">
</jdbcConnection>
<!--生成的model 包路径 -->
<javaModelGenerator targetPackage="${model.package}"
targetProject="${project}/src/main/java">
<property name="enableSubPackages" value="ture" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成xml mapper文件 路径 -->
<sqlMapGenerator targetPackage="${xml.package}"
targetProject="${project}/src/main/resources">
<property name="enableSubPackages" value="ture" />
</sqlMapGenerator>
<!-- 生成的Dao接口 的包路径 -->
<javaClientGenerator targetPackage="${dao.package}"
type="XMLMAPPER" targetProject="${project}/src/main/java">
<property name="enableSubPackages" value="ture" />
</javaClientGenerator>
<!--对应数据库表名 -->
<table tableName="t_member" enableCountByExample="true"
enableUpdateByExample="true" enableDeleteByExample="true"
enableSelectByExample="true" selectByExampleQueryId="true"
domainObjectName="Member">
<columnOverride column="STATUS" javaType="Integer" />
<columnOverride column="FLAG" javaType="Long" />
<columnOverride column="AGE" javaType="Long" />
</table>
<table tableName="t_account"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true" domainObjectName="Account">
<columnOverride column="FLOW_CHANNEL" javaType="Integer" />
</table>
</context>
</generatorConfiguration>
generator.properties
jdbc.driverLocation=D:/ojdbc-16.jar
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.123.100:1539:db
jdbc.username=root
jdbc.password=root
model.package=top.wswzms.entity
dao.package=top.wswzms.mapper
xml.package=persistence.mapper
project = test