Mybatis Maven MySQL
1、使用Maven插件进行逆向工程
A.配置逆向工程文件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="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false"/> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <!--com.mysql.cj.jdbc.Driver是最新版本MySQL驱动连接方式--> <!--?serverTimezone=UTC设置时区--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql:///ssm?serverTimezone=UTC" userId="root" password="123456"> <!--设置可以获取tables remarks信息--> <property name="useInformationSchema" value="true"/> <!--设置可以获取remarks信息--> <property name="remarks" value="true"/> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- targetProject:生成POJO/Bean类的位置 --> <javaModelGenerator targetPackage="com.fcant.ssmcom.bean" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.fcant.ssmcom.mapper" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!--指定数据库表的生成策略--> <table tableName="ss_product" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context></generatorConfiguration>
B.需要自行更改以下配置项

C.在pom文件添加Mybatis逆向工程插件和相应的依赖包-Mybatis-Generator
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.1.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.2</version> </dependency> <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.1.5</version> </dependency> <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.1.5</version> </dependency> </dependencies> <build> <plugins> <!--Mybatis逆向工程的插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <!--指定本地的逆向工程设置文件--> <configurationFile>src/main/resources/generator.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <!--在插件配置数据库驱动包以防止插件运行找不到驱动包--> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> </dependencies> </plugin> </plugins> </build>
D.需要自行更改的地方
E.执行逆向工程
2、使用配置类进行逆向工程
A.导入相关jar包
lib.zip
B.配置逆向工程文件mdb.xml-将该文件放至src目录下
<?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="suppressDate" value="true"/> --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <!--com.mysql.cj.jdbc.Driver是最新版本MySQL驱动连接方式--> <!--?serverTimezone=UTC设置时区--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql:///ssm?serverTimezone=UTC" userId="root" password="123456"> <!--设置可以获取tables remarks信息--> <property name="useInformationSchema" value="true"/> <!--设置可以获取remarks信息--> <property name="remarks" value="true"/> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- targetProject:生成POJO/Bean类的位置 --> <javaModelGenerator targetPackage="com.fcant.ssmcom.bean" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.fcant.ssmcom.mapper" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!--指定数据库表的生成策略--> <!--schema属性标签可以解决JDBC连接MySQL找不到主键的问题--> <!--catalog属性标签解决JDBC对catalog的支持性而不能识别数据库的主键,但是会在映射文件表前自动生成"数据库名称.."--> <!-- <table tableName="busdata" domainObjectName="BusData" schema="itbus"></table>--> <table tableName="ss_product" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context></generatorConfiguration>
C.需要自行更改以下配置项

D.配置逆向工程工具类
/***Generator**@description:Mybatis逆向工程工具类,在测试包运行降低耦合*@author:Fcscanf@樊乘乘*@date:2018-08-05下午16:51*/public class Generator { public static void main (String[] args) throws IOException,XMLParserException,SQLException,InterruptedException,InvalidConfigurationException{ List<String> warings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File ("mdb.xml"); ConfigurationParser configurationParser =new ConfigurationParser(warings); Configuration configuration = configurationParser.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator =new MyBatisGenerator(configuration,callback,warings); myBatisGenerator.generate(null); } }
E.运行工具类执行逆向工程
