MyBatis逆向工程5分钟快速搞定【附工程项目, 可直接使用】
步骤:
1.新建一个工程
file–>New -> Project ->Maven(也可选其他),只是简单创建一个工程,用什么方法都可以。
创建maven工程的前提是安装配置好maven,网上有很多教程可以看看,maven挺好用的 。(不过您能看到这个帖子,说明您应该安装好maven啦)
**没安装Maven的也没关系。**随便创建一个工程即可,比如Java工程。跳过第2第。看第3步。
新建项目之后需要导入依赖。
2.导入jar包依赖
主要用到的依赖有两个
1.数据库驱动
2.mybatis逆向工程驱动
更新之后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>org.example</groupId>
<artifactId>MyBatisReverseTest</artifactId>
<version>1.0-SNAPSHOT</version>
<!--添加依赖-->
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!--oracle驱动-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.6.0.0.1</version>
</dependency>
<!--MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
</dependencies>
</project>
其他驱动下载方式(需要可看,不需要跳过这条):
如想搜索ojdbc.则搜索ojdbc 加maven 即可,其他jar包也是如此。需要注意的是,要进入官网才能下载呀。
附上官网:
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.29
3.未安装配置maven的小伙伴。需要手动把jar包导入您创建的工程中。相关包可自行下载,或在这里下载。
链接:https://pan.baidu.com/s/11pEo4YgztngGRlqqW3bbhw
提取码:8888
4.配置xml文件
下载好jar包之后,需要配置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="DB2Tables" targetRuntime="MyBatis3" defaultModelType = "flat">
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--配置数据库链接地址账号密码。注意,如果MySQL驱动是5.7以下版本,driverClass填com.mysql.jdbc.Driver,驱动版本大于5.7版本,driverClass填com.mysql.cj.jdbc.Driver -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost/aisa" userId="root" password="root">
</jdbcConnection>
<!--配置Oracle数据库信息,看您的数据库是什么数据库-->
<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@100.11.11.22:1521:gift"
userId="gift" password="gift">
</jdbcConnection>-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成pojo类文件路径-->
<javaModelGenerator targetPackage="pojo" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成DaoMapper类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--表名对应类,前面是数据库表名,后面生成对应类的类名-->
<table tableName="access_review"
domainObjectName="AccessReview"
></table>
<table tableName="user_info"
domainObjectName="UserInfo"
></table>
</context>
</generatorConfiguration>
Java类
package test;
import java.io.File;
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.internal.DefaultShellCallback;
public class test {
public static void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("Reverse.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) {
try {
generator();
System.out.println("jj");
} catch (Exception e) {
e.printStackTrace();
}
}
}
生成完成后如下。
5.可能会存在的问题及解决:
1.mybatis逆向工程生成XXXXMapper.xml 内方法名重复解决:
需要把generator版本改为1.3.7以上
maven工程pom配置:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
2.需要在generatorConfig.xml中添加一个注解。用来覆盖原配置,防止重复。该注解添加到标签内
<!--防止生成重复代码-->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>
完整xml配置请您参考 4.配置xml