Mybatis也有反向工程,用于通过数据库表生成对应的Mapper接口和mapper.xml文件,与Mybatis-plus的代码生成器不同的是,其主要生成的代码在mapper.xml文件中,包含了表的动态增删改查操作。如果不用Mybatis-plus的话用Mybatis反向工程可以生成更为标准的mapper文件。
导入依赖org.mybatis.generator mybatis-generator-core test
编写配置DBGenerator.xml文件由于我们的generator不应打包部署到对应的应用中,所以我们定义scope为test。
]>
:其实就是xml的语法定义,类似于java中定义一个变量。这里的变量名是driverClass,值为com.mysql.cj.jdbc.Driver
table标签详解commentGenerator 标签中的MyCommentGenerator是我们自定义的生成的类的注释等的配置,可以不用配置,不配置默认使用的是DefaultCommentGenerator。我们自定义配置的话可以继承DefaultCommentGenerator修改我们想要修改的内容。
| 属性 | 说明 |
|---|---|
| schema& catalog | 数据库的schema,mysql这里需要设置 |
| tableName | 数据库表名 |
| domainObjectName | 生成的JavaBean类名 |
| enable****ByExample | 是否生成对应的Example操作类,我们的示例全部禁止了 |
编写生成代码GeneratorUtil子标签的定义代码中有注释,这里不作说明了。
package com.yyoo.generator;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public abstract class GeneratorUtil {
public static void generator(){
generator("generator.xml");
}
public static void generator(String configFile){
try {
List warnings = new ArrayList();
boolean overwrite = true;
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(GeneratorUtil.class.getClassLoader().getResourceAsStream(configFile));
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
}
}
}
测试代码
package com.yyoo.generator;
import org.junit.Test;
public class Main {
@Test
public void generator(){
GeneratorUtil.generator("DBGenerator.xml");
}
}
本文只是提供一个Mybatis的反向工程的参考代码。内容写得并不详细,这里推荐还是使用Mybatis-plus以及其对应的代码生成器。因为确实简单方便实用。
上一篇:Mybatis-plus进阶之代码生成器
下一篇:待续



