Mybatis逆向工程自动生成代码文件
一般來說都會(huì)新建另外一個(gè)項(xiàng)目,用于生成代碼文件,然后拷貝到需要的項(xiàng)目中。新建maven項(xiàng)目用于生成代碼文件,項(xiàng)目目錄如下所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
pom.xml內(nèi)容如下:?
<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>com.nhu</groupId><artifactId>MyMavenGenerator</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency></dependencies><build/> </project>?
generatorConfig.xml內(nèi)容如下所示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//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><!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--數(shù)據(jù)庫連接的信息:驅(qū)動(dòng)類、連接地址、用戶名、密碼 --><jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@192.168.1.196:1521:orcl" userId="nhu_yzd"password="123"></jdbcConnection><!-- 默認(rèn)false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時(shí)把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage="com.nhu.po"targetProject=".\src\main\java"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /><!-- 從數(shù)據(jù)庫返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.nhu.mapper" targetProject=".\src\main\java"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.nhu.mapper" targetProject=".\src\main\java"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 有些表的字段需要指定java類型--><table tableName="TABCKINCOME"></table> <table tableName="TABCKUSED"></table><table tableName="TABDEPTINCOME"></table><table tableName="TABDEPTUSED"></table><table tableName="TABPRODUCTS"></table><table tableName="TABPRODUCTSTYPE"></table><table tableName="TABUNIT"></table><table tableName="TABUSERS"></table></context> </generatorConfiguration>?
log4j.properties中的配置如下所示:
log4j.rootLogger=DEBUG, Console#Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 \u7248\u6743\u58F0\u660E\uFF1A\u672C\u6587\u4E3ACSDN\u535A\u4E3B\u300CJokerZhan\u300D\u7684\u539F\u521B\u6587\u7AE0\uFF0C\u9075\u5FAA CC 4.0 BY-SA \u7248\u6743\u534F\u8BAE\uFF0C\u8F6C\u8F7D\u8BF7\u9644\u4E0A\u539F\u6587\u51FA\u5904\u94FE\u63A5\u53CA\u672C\u58F0\u660E\u3002 \u539F\u6587\u94FE\u63A5\uFF1Ahttps://blog.csdn.net/JokerZhan/article/details/82942488?
在com.nhu.main中新建一個(gè)java類:GeneratorMain.java 用于生成配置自動(dòng)生成代碼:?
package com.nhu.main;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 GeneratorMain {public void generator() throws Exception {//warnings為用于放置生成過程中警告信息的集合對(duì)象List<String> warnings = new ArrayList<String>();//指定是否覆蓋重名文件boolean overwrite = true;// 指定配置文件File configFile = new File("generatorConfig.xml");//配置解析類ConfigurationParser cp = new ConfigurationParser(warnings);//配置解析類解析配置文件并生成Configuration 配置對(duì)象Configuration config = cp.parseConfiguration(configFile);//負(fù)責(zé)如何處理重復(fù)文件DefaultShellCallback callback = new DefaultShellCallback(overwrite);//逆向工程對(duì)象MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);//執(zhí)行逆向文件生成操作myBatisGenerator.generate(null);}// 執(zhí)行main方法以生成代碼public static void main(String[] args) {try {GeneratorMain generatorSqlmap = new GeneratorMain();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}} }運(yùn)行上圖代碼后,F5刷新項(xiàng)目便可以看到自動(dòng)生成的代碼文件:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
將自動(dòng)生成的代碼文件拷貝到需要的項(xiàng)目中即可。
注意:在oracle數(shù)據(jù)庫中是不分大小寫的,如果要區(qū)分必須要加上引號(hào)。用Navicat的可視化界面進(jìn)行新增的表會(huì)自動(dòng)在表名上加上引號(hào),如 "TabUser" 。這會(huì)導(dǎo)致mybatis無法識(shí)別表名,從而無法進(jìn)行逆向工程操作。建議在oracle中建表和表字段時(shí),手動(dòng)寫create語句,并且全部用大寫并且不加引號(hào)。
總結(jié)
以上是生活随笔為你收集整理的Mybatis逆向工程自动生成代码文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu16.04 Caffe2 编
- 下一篇: const 一级指针的启示