From 3da5cf5b147930a65cd49f0385692fe1706b4a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=87=95?= <2080993215@qq.com> Date: Tue, 8 Jan 2019 22:47:56 +0800 Subject: [PATCH] mybaits generator --- .../java/com/sock/mall/CommentGenerator.java | 46 +++++++++++++++++++ .../main/java/com/sock/mall/Generator.java | 37 +++++++++++++++ .../src/main/resources/generator.properties | 4 ++ .../src/main/resources/generatorConfig.xml | 40 ++++++++++++++++ 4 files changed, 127 insertions(+) create mode 100644 代码库/mall-mbg/src/main/java/com/sock/mall/CommentGenerator.java create mode 100644 代码库/mall-mbg/src/main/java/com/sock/mall/Generator.java create mode 100644 代码库/mall-mbg/src/main/resources/generator.properties create mode 100644 代码库/mall-mbg/src/main/resources/generatorConfig.xml diff --git a/代码库/mall-mbg/src/main/java/com/sock/mall/CommentGenerator.java b/代码库/mall-mbg/src/main/java/com/sock/mall/CommentGenerator.java new file mode 100644 index 0000000..503be6d --- /dev/null +++ b/代码库/mall-mbg/src/main/java/com/sock/mall/CommentGenerator.java @@ -0,0 +1,46 @@ +package com.sock.mall; + +import org.mybatis.generator.api.IntrospectedColumn; +import org.mybatis.generator.api.IntrospectedTable; +import org.mybatis.generator.api.dom.java.Field; +import org.mybatis.generator.internal.DefaultCommentGenerator; +import org.mybatis.generator.internal.util.StringUtility; + +import java.util.Properties; + +/** + * 自定义注释生成器 + */ +public class CommentGenerator extends DefaultCommentGenerator { + private boolean addRemarkComments = false; + + /** + * 设置用户配置的参数 + */ + @Override + public void addConfigurationProperties(Properties properties) { + super.addConfigurationProperties(properties); + this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); + } + + /** + * 给字段添加注释 + */ + @Override + public void addFieldComment(Field field, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn) { + String remarks = introspectedColumn.getRemarks(); + //根据参数和备注信息判断是否添加备注信息 + if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ + //文档注释开始 + field.addJavaDocLine("/**"); + //获取数据库字段的备注信息 + String[] remarkLines = remarks.split(System.getProperty("line.separator")); + for(String remarkLine:remarkLines){ + field.addJavaDocLine(" * "+remarkLine); + } + addJavadocTag(field, false); + field.addJavaDocLine(" */"); + } + } +} diff --git a/代码库/mall-mbg/src/main/java/com/sock/mall/Generator.java b/代码库/mall-mbg/src/main/java/com/sock/mall/Generator.java new file mode 100644 index 0000000..2e01320 --- /dev/null +++ b/代码库/mall-mbg/src/main/java/com/sock/mall/Generator.java @@ -0,0 +1,37 @@ +package com.sock.mall; + +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; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * 用于生产MBG的代码 + */ +public class Generator { + public static void main(String[] args) throws Exception { + //MBG 执行过程中的警告信息 + List warnings = new ArrayList(); + //当生成的代码重复时,覆盖原代码 + boolean overwrite = true; + //读取我们的 MBG 配置文件 + InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); + ConfigurationParser cp = new ConfigurationParser(warnings); + Configuration config = cp.parseConfiguration(is); + is.close(); + + DefaultShellCallback callback = new DefaultShellCallback(overwrite); + //创建 MBG + MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); + //执行生成代码 + myBatisGenerator.generate(null); + //输出警告信息 + for (String warning : warnings) { + System.out.println(warning); + } + } +} diff --git a/代码库/mall-mbg/src/main/resources/generator.properties b/代码库/mall-mbg/src/main/resources/generator.properties new file mode 100644 index 0000000..95c8f90 --- /dev/null +++ b/代码库/mall-mbg/src/main/resources/generator.properties @@ -0,0 +1,4 @@ +jdbc.driverClass=com.mysql.jdbc.Driver +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall +jdbc.userId=root +jdbc.password=root \ No newline at end of file diff --git a/代码库/mall-mbg/src/main/resources/generatorConfig.xml b/代码库/mall-mbg/src/main/resources/generatorConfig.xml new file mode 100644 index 0000000..2639bb7 --- /dev/null +++ b/代码库/mall-mbg/src/main/resources/generatorConfig.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
\ No newline at end of file