mysql创建generator字段_springmvc+mybatsi-generator生成不了字段注释的解决方案

在SpringMVC项目中,使用MyBatis-Generator 1.3.6版本时遇到字段注释无法生成的问题。通过调试发现与SpringBoot项目的差异可能与此有关。为解决该问题,作者自定义了一个CommentGenerator类,覆盖默认行为,确保字段注释能根据MySQL表字段的Remarks生成。通过在generatorConfig.xml中配置自定义CommentGenerator,并通过main方法执行生成操作,成功解决了注释生成问题。
摘要由CSDN通过智能技术生成

395c595fae8da1cbb9c380cc26be3951.png

在我早期搭建我的个人博客的时候,由于当时比较空闲,所以就没有使用mybatis-generator框架来生成mybatis文件,都还是自己一个个的亲手写,这次重构的时候,就想着将它框架集成进去,但也不知道为了点儿啥,就是生成不了mysql表字段的注释。

-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

我使用的mybatis-generator框架是1.3.6版本,上面是我的generatorConfig.xml配置文件,这个配置文件是我从其他项目拷贝过来的,除了修改数据库信息以外,并没有其他改动。

平时使用的时候,我都是直接通过maven插件的方式运行的,都能正确生成javabean的字段注释,但是在这个项目运行的时候,就是生成不了,就算是将注释配置打开,生成的也都是框架本身自带的一堆英文,debug了一圈,发现它就是不走生成自定义注释的那段代码,百思不得其解(唯一不一样的地方,就在于正常的是springboot项目,而我这个是springmvc项目,诡异,,,如果后面我找到问题原因了,会再写文章做详细分析)。

89770250796f203f17ec004270091f7b.png

在网上找了一圈,也没有发现什么好的解决方案,不过倒是看到了另外一种思路:不使用maven插件方式,自定义一个CommentGenerator,最终问题得到了解决。。。

1、自定义一个CommentGenerator;

package com.wolffy.jwcz.dao.plugin;

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;

/**

* 自定义注释生成器

* Created by SongFei on 2020/09/21.

*/

public classMyCommentGeneratorextendsDefaultCommentGenerator{

private Properties properties;

private Properties systemPro;

private boolean suppressDate;

private boolean suppressAllComments;

private String currentDateStr;

publicMyCommentGenerator(){

super();

properties = new Properties();

systemPro = System.getProperties();

suppressDate = false;

suppressAllComments = false;

currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date());

}

publicvoidaddFieldComment(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(" */");

}

publicvoidaddFieldComment(Field field, IntrospectedTable introspectedTable){

}

publicvoidaddGeneralMethodComment(Method method, IntrospectedTable introspectedTable){

}

publicvoidaddGetterComment(Method method, IntrospectedTable introspectedTable,

IntrospectedColumn introspectedColumn){

}

publicvoidaddSetterComment(Method method, IntrospectedTable introspectedTable,

IntrospectedColumn introspectedColumn){

}

publicvoidaddClassComment(InnerClass innerClass, IntrospectedTable introspectedTable,booleanmarkAsDoNotDelete){

}

publicvoidaddClassComment(InnerClass innerClass, IntrospectedTable introspectedTable){

}

}

2、在配置文件中引入自定义的CommentGenerator(上面的generatorConfig.xml中已经写了,这里不再重复);

3、写一个main方法,运行自定义的CommentGenerator;

package com.wolffy.jwcz.dao;

import java.io.InputStream;

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;

/**

* 快速生成mybatis配置文件

* Created by SongFei on 2020/09/21.

*/

public class MybatisGenerator{

public static void main(String[] args){

MybatisGenerator generator = new MybatisGenerator();

System.out.println(System.getProperty("user.dir"));

System.out.println(generator.getClass().getResource("/").getPath());

generator.run();

}

public void run(){

try {

InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("generatorConfig.xml");

List warnings = new ArrayList<>();

ConfigurationParser parser = new ConfigurationParser(warnings);

Configuration config = parser.parseConfiguration(resourceAsStream);

DefaultShellCallback callback = new DefaultShellCallback(true);

MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings);

generator.generate(null);

for (String warning : warnings) {

System.err.println(">" + warning);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值