版权声明:仅供学习使用,未经同意不得转发,不可使用商业用途。 https://blog.csdn.net/wangqingbang/article/details/89927375
前言:通常我们的后台数据库的表的类目繁多,如果不利用工具,会很浪费时间和精力,这里收藏一种快捷的方法,用mybatis-generator-core的jar包,使用逆向工程来反向生成java的pojo、mapper和xml,这种方法极大的解放了我们的双手。
具体过程如下:
1. 在IDEA中建立一个普通的java工程即可
在这里不需要任何的模板:
在这里,我将工程命名为 generatorSqlmapCustom
2. 添加工程所需的jar包,在这里我用的jar包版本是mysql-connector-java-5.1.28-bin.jar
我提前准备其他需要支持的jar包(必须的):
有需要的朋友可以直接下载:
链接:https://pan.baidu.com/s/1n8a521PyHWo92396EcgRFQ
提取码:agyl
下载好jar包后:
3. 导入jar包后,就要开始写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="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/Remember" userId="root"
password="123">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.remember.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.remember.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.remember.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="banner"></table>
<table schema="" tableName="banner_item"></table>
<table schema="" tableName="category"></table>
<table schema="" tableName="image"></table>
<table schema="" tableName="order"></table>
<table schema="" tableName="order_product"></table>
<table schema="" tableName="product"></table>
<table schema="" tableName="product_image"></table>
<table schema="" tableName="product_property"></table>
<table schema="" tableName="theme"></table>
<table schema="" tableName="theme_product"></table>
<table schema="" tableName="third_app"></table>
<table schema="" tableName="user"></table>
<table schema="" tableName="user_address"></table>
</context>
</generatorConfiguration>
在配置里面添加了详细的注释,填表的阶段,推荐从数据库中直接复制,防止出错。
还有,把配置文件放到resources下,像这样:
4. java运行代码
命名为 GeneratorSqlmap
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorSqlmap {
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("resources/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 {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
写好的java代码不用修改,只需把xml配置文件放对位置即可!
5. 运行java代码
运行结果:
此时,你看你的src下,是不是多了你之前写好的包名:
此时,就已经大功告成了!
小Tips:
1.生成的包用完可以及时删掉,否则再次生成时会叠加!
2.数据库某个表修改时,单独选一个表就行,就能生成