逆向工程运行类:GenneratorSqlMap
import java.io.File; import java.io.IOException; import java.sql.SQLException; 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.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback;
public class GenneratorSqlMap {
public void generator() throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException{ //warnings为用于放置生成过程中警告信息的集合对象 List
//指定DefaultShellCallback是否覆盖重名文件 boolean overwrite = true;
//加载配置文件 File configFile = new File("generatorConfig.xml");
//配置解析类 ConfigurationParser cp = new ConfigurationParser(warnings);
//配置解析类解析配置文件并生成Configuration配置对象 Configuration config = cp.parseConfiguration(configFile);
//DefaultShellCallback负责如何处理重复文件 DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//逆向工程对象 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//执行逆向文件生成操作 myBatisGenerator.generate(null); }
public static void main(String[] args) throws Exception{
GenneratorSqlMap genneratorSqlMap = new GenneratorSqlMap();
genneratorSqlMap.generator();
} }
|
逆向工程日志文件:log4j.properties
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n |
逆向工程需要的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>
<property name="suppressAllComments" value="false"/> commentGenerator>
<jdbcConnection connectionURL="jdbc:oracle:thin:@//192.168.3.196:1521/project" driverClass="oracle.jdbc.driver.OracleDriver" password="admin" userId="tom">
<property name="remarksReporting" value="true">property> jdbcConnection>
<javaTypeResolver> <property name="forceBigDecimals" value="false"/> javaTypeResolver>
<javaModelGenerator targetPackage="com.znsd.mall.bean" targetProject=".\src">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="true"/> javaModelGenerator>
<sqlMapGenerator targetPackage="com.znsd.mall.dao.mapper" targetProject=".\src">
<property name="enableSubPackages" value="false"/> sqlMapGenerator>
<javaClientGenerator targetPackage="com.znsd.mall.dao.mapper" type="XMLMAPPER" targetProject=".\src">
<property name="enableSubPackages" value="false"/> javaClientGenerator>
<table tableName="t_goods_collect">table>
<table schema="" tableName="t_additional_comment" domainObjectName="AdditionalCommentBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="REPLY_Time" javaType="String" /> table>
context> generatorConfiguration> |
log4j 日志:log4j.properties
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n |
Maven 工程:
pom.xml
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.darryl.generatorgroupId> <artifactId>SpringbootMybatisGeneratorartifactId> <version>0.0.1-SNAPSHOTversion> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.1.1.RELEASEversion> parent> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starterartifactId> dependency>
<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> dependency>
<dependency> <groupId>org.mybatis.spring.bootgroupId> <artifactId>mybatis-spring-boot-starterartifactId> <version>1.1.1version> dependency>
<dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> dependency>
<dependency> <groupId>com.github.norauigroupId> <artifactId>ojdbc8artifactId> <version>12.2.0.1version> dependency>
<dependency> <groupId>org.mybatis.generatorgroupId> <artifactId>mybatis-generator-coreartifactId> <version>1.3.5version> dependency> dependencies> <build> <plugins> <plugin> <groupId>org.mybatis.generatorgroupId> <artifactId>mybatis-generator-maven-pluginartifactId> <version>1.3.2version> <dependencies> <dependency> <groupId>org.mybatis.generatorgroupId> <artifactId>mybatis-generator-coreartifactId> <version>1.3.2version> dependency> dependencies> plugin> plugins> <resources> <resource> <directory>src/main/javadirectory> <includes> <include>**/*.xmlinclude> <include>**/*.sqlinclude> includes> <filtering>falsefiltering> resource> <resource> <directory>src/main/resourcesdirectory> resource> resources> build>
project> |
CustomCommentGenerator.java
package com.darryl.generator; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.api.dom.java.Field; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultCommentGenerator; import org.mybatis.generator.internal.DefaultShellCallback; public class CustomCommentGenerator extends DefaultCommentGenerator { // @Override // public void addFieldComment(Field field, IntrospectedTable introspectedTable, // IntrospectedColumn introspectedColumn) { // // 添加字段注释 // field.addJavaDocLine("/**"); // if (introspectedColumn.getRemarks() != null) { // field.addJavaDocLine(" * " + introspectedColumn.getRemarks()); // } // // addJavadocTag(field, false); // field.addJavaDocLine(" */"); // } public static void main(String[] args) throws Exception { try { List boolean overwrite = true; ClassLoader classloader = Thread.currentThread().getContextClassLoader(); InputStream is = classloader.getResourceAsStream("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(is); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); System.out.println("生成成功"); } catch (Exception e) { e.printStackTrace(); } } } |
MyCommentGenerator.java
package com.darryl.generator;
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties;
import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.Field; import org.mybatis.generator.api.dom.java.InnerClass; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.internal.DefaultCommentGenerator;
public class MyCommentGenerator extends DefaultCommentGenerator { private Properties properties; private Properties systemPro; private boolean suppressDate; private boolean suppressAllComments; private String currentDateStr; public MyCommentGenerator() { super(); properties = new Properties(); systemPro = System.getProperties(); suppressDate = false; suppressAllComments = false; currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()); } public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); field.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); field.addJavaDocLine(sb.toString().replace("\n", " ")); field.addJavaDocLine(" */"); } public void addFieldComment(Field field, IntrospectedTable introspectedTable) { } public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) { } public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { } public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) { } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) { } }
|
log4j.properties
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n |
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="context1" targetRuntime="MyBatis3">
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator type="com.darryl.generator.MyCommentGenerator"> <property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" /> commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/huancheng?serverTimezone=UTC" userId="root" password="******"> jdbcConnection>
<javaTypeResolver> <property name="forceBigDecimals" value="false" /> javaTypeResolver>
<javaModelGenerator targetPackage="com.znsd.mall.bean" targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
<property name="constructorBased" value="true" />
<property name="immutable" value="false" /> javaModelGenerator>
<sqlMapGenerator targetPackage="com.znsd.mall.dao.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" /> sqlMapGenerator>
<javaClientGenerator targetPackage="com.znsd.mall.dao.mapper" type="XMLMAPPER" targetProject=".\src">
<property name="enableSubPackages" value="true" /> javaClientGenerator>
<table schema="" tableName="t_additional_comment" domainObjectName="AdditionalCommentBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="REPLY_Time" javaType="String" /> table>
<table schema="" tableName="t_administrator" domainObjectName="AdministratorBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_application_info" domainObjectName="ApplicationInfoBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_comment" domainObjectName="CommentBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="comment_reply" javaType="String" /> table> <table schema="" tableName="t_coupon" domainObjectName="CouponBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="start_time" javaType="String" /> <columnOverride column="end_time" javaType="String" /> table>
<table schema="" tableName="t_depository" domainObjectName="DepositoryBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_depository_record" domainObjectName="DepositoryRecordBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="time" javaType="String" /> table>
<table schema="" tableName="t_dictionary" domainObjectName="DictionaryBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_goods" domainObjectName="GoodsBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_goods_record" domainObjectName="GoodsRecordBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="time" javaType="String" /> table>
<table schema="" tableName="t_goods_types" domainObjectName="GoodsTypesBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_order" domainObjectName="OrderBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="delivery_time" javaType="String" /> <columnOverride column="finish_time" javaType="String" /> <columnOverride column="closing_time" javaType="String" /> table>
<table schema="" tableName="t_order_detail" domainObjectName="OrderDetailBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_order_logistics" domainObjectName="OrderLogisticsBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="shipments_time" javaType="String" /> <columnOverride column="delivery_time" javaType="String" /> <columnOverride column="sign_off_time" javaType="String" /> table>
<table schema="" tableName="t_order_sales" domainObjectName="OrderSalesBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="refund_time" javaType="String" /> <columnOverride column="processing_time" javaType="String" /> table>
<table schema="" tableName="t_ralance" domainObjectName="RalanceBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_role_info" domainObjectName="RoleInfoBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_specification" domainObjectName="SpecificationBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="t_store" domainObjectName="StoreBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> <columnOverride column="open_time" javaType="String" /> <columnOverride column="close_time" javaType="String" /> table>
<table schema="" tableName="t_supplier" domainObjectName="SupplierBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table> context> generatorConfiguration> |
Oracle 中 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="context1" targetRuntime="MyBatis3">
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator type="com.darryl.generator.MyCommentGenerator"> <property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" /> commentGenerator>
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.3.196:1521:project" userId="tom" password="admin">
<property name="remarksReporting" value="true">property> jdbcConnection>
<javaTypeResolver> <property name="forceBigDecimals" value="false" /> javaTypeResolver>
<javaModelGenerator targetPackage="com.znsd.mall.bean" targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
<property name="constructorBased" value="true" />
<property name="immutable" value="false" /> javaModelGenerator>
<sqlMapGenerator targetPackage="com.znsd.mall.dao.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" /> sqlMapGenerator>
<javaClientGenerator targetPackage="com.znsd.mall.dao.mapper" type="XMLMAPPER" targetProject=".\src">
<property name="enableSubPackages" value="true" /> javaClientGenerator>
<table schema="" tableName="T_GOODS_COLLECT" domainObjectName="GoodsCollectBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_MY_COUPON" domainObjectName="MyCouponBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_PRIVACY_PROTOCOL" domainObjectName="PrivacyProtocolBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_SHIPPING_ADDRESS" domainObjectName="ShippingAddressBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_SHOPPING_TROLLEY" domainObjectName="ShoppingTrolleyBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_STORE_COLLECT" domainObjectName="StoreCollectBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_USER_BANK" domainObjectName="UserBankBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_USER_LOGIN" domainObjectName="UserLoginBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table>
<table schema="" tableName="T_USER_PROFILE" domainObjectName="UserProfileBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="CREATE_Time" javaType="String" /> <columnOverride column="UPDATE_Time" javaType="String" /> table> context> generatorConfiguration> |