1. 使用 Maven plugin 生成
pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>cn.xiaows</groupId>
- <artifactId>App</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>App</name>
- <properties>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <!-- ... -->
- <!--mapper-->
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper-spring-boot-starter</artifactId>
- <version>1.2.4</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-maven-plugin</artifactId>
- <version>1.3.4</version>
- <configuration>
- <configurationFile>${basedir}/src/main/resources/mybatis-generator.xml</configurationFile>
- <overwrite>true</overwrite>
- <verbose>true</verbose>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <version>5.1.46</version>
- </dependency>
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper-generator</artifactId>
- <version>1.0.0</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
- </project>
- src/main/resources/mybatis-generator.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="`"/>
- <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
- <property name="mappers" value="cn.xiaows.app.util.MyMapper"/>
- </plugin>
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/mydb"
- userId="root"
- password="123456">
- </jdbcConnection>
- <!-- 对于生成的 entity 所在包 -->
- <javaModelGenerator targetPackage="cn.xiaows.app.entity" targetProject="src/main/java"/>
- <!-- 对于生成的 mapper 所在目录 -->
- <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
- <!--<sqlMapGenerator targetPackage="cn.xiaows.app.dao" targetProject="src/main/java"/>-->
- <!-- 配置 mapper 对应的 java 映射 -->
- <javaClientGenerator targetPackage="cn.xiaows.app.dao" targetProject="src/main/java" type="XMLMAPPER" />
- <table tableName="%"/><!-- 所有表 -->
- <!--<table tableName="user" mapperName="UserDao"/>-->
- <!--<table tableName="company" mapperName="CompanyDao"/>-->
- <!--...-->
- </context>
- </generatorConfiguration>
生成命令:
mybatis-generator:generate -f pom.xml
2. 使用 main 方法生成
pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>cn.xiaows</groupId>
- <artifactId>App</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>App</name>
- <properties>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <!-- mysql -->
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <version>5.1.46</version>
- </dependency>
- <!-- mybatis-generator -->
- <dependency>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-core</artifactId>
- <version>1.3.4</version>
- <scope>compile</scope>
- <optional>true</optional>
- </dependency>
- <!--mapper-->
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper-spring-boot-starter</artifactId>
- <version>1.2.4</version>
- </dependency>
- </dependencies>
- </project>
MBG.java
- package cn.xiaows.App.util;
- 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.io.InputStream;
- import java.util.ArrayList;
- import java.util.List;
- public class MBG {
- public static void main(String[] args) throws Exception {
- List<String> warnings = new ArrayList<>();
- boolean overwrite = true;
- ConfigurationParser cp = new ConfigurationParser(warnings);
- Configuration config = cp.parseConfiguration(new File("app/src/main/resources/MBG.xml"));
- // Configuration config = cp.parseConfiguration(ClassLoader.getSystemResourceAsStream("generatorConfig.xml"));
- DefaultShellCallback callback = new DefaultShellCallback(overwrite);
- MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
- myBatisGenerator.generate(null);
- for (String warning : warnings) {
- System.out.println(warning);
- }
- }
- }
MBG.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="`"/>
- <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
- <property name="mappers" value="cn.xiaows.app.util.MyMapper"/>
- </plugin>
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/mydb"
- userId="root"
- password="123456">
- </jdbcConnection>
- <!-- 对于生成的 entity 所在包 -->
- <javaModelGenerator targetPackage="cn.xiaows.app.entity" targetProject="app/src/main/java"/>
- <!-- 对于生成的 mapper 所在目录 -->
- <sqlMapGenerator targetPackage="mapper" targetProject="app/src/main/resources"/>
- <!--<sqlMapGenerator targetPackage="cn.xiaows.app.dao" targetProject="app/src/main/java"/>-->
- <!-- 配置 mapper 对应的 java 映射 -->
- <javaClientGenerator targetPackage="cn.xiaows.app.dao" targetProject="app/src/main/java" type="XMLMAPPER" />
- <table tableName="%"/>
- <!--<table tableName="user" mapperName="UserDao"/>-->
- <!--<table tableName="company" mapperName="CompanyDao"/>-->
- <!--...-->
- </context>
- </generatorConfiguration>
MyMapper.java
- package cn.xiaows.App.util;
- import tk.mybatis.mapper.common.Mapper;
- import tk.mybatis.mapper.common.MySqlMapper;
- /**
- * 继承自己的 MyMapper
- * 特别注意, 该接口不能被扫描到, 否则会出错
- */
- public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
- }
来源: http://www.jianshu.com/p/a674fee675bd