我是靠谱客的博主 年轻百褶裙,最近开发中收集的这篇文章主要介绍mybatis generator插件系列--注释插件 (为实体类生成数据库字段注释)1、首先定义注释生成插件2、然后为mybatisgenerator配置插件 3、生成效果,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
我们都知道mybatis generator自动生成的注释没什么实际作用,而且还增加了代码量。如果能将注释从数据库中捞取到,不仅能很大程度上增加代码的可读性,而且减少了后期手动加注释的工作量。
1、首先定义注释生成插件
MyCommentGenerator.java
package com.ilovey.mybatis.comment;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
/**
* mybatis generator生成注释插件
* <p>
* Created by huhaichao on 2017/5/15.
*/
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) {
}
}
2、然后为mybatisgenerator配置插件
<?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">
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- 使用自定义的插件 -->
<commentGenerator type="com.ilovey.mybatis.comment.MyCommentGenerator">
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8"
userId="root" password="123456">
</jdbcConnection>
<javaModelGenerator targetPackage="com.ilovey.biz.entity.base"
targetProject="ilovey.biz/src/main/java"/>
<sqlMapGenerator targetPackage="com.ilovey.biz.mapper.base"
targetProject="ilovey.biz/src/main/resources"/>
<javaClientGenerator targetPackage="com.ilovey.biz.mapper.base"
targetProject="ilovey.biz/src/main/java" type="XMLMAPPER"/>
<table tableName="us_user_info"
domainObjectName="UsUserInfo">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
3、生成效果
package com.ilovey.biz.entity.base;
import java.io.Serializable;
import java.util.Date;
public class UsUserInfo implements Serializable {
/**
*
*/
private Integer id;
/**
* 用户id
*/
private Integer userId;
/**
* 昵称
*/
private String nickName;
/**
* 头像
*/
private String headImage;
/**
* 手机号码
*/
private String mobile;
/**
* 性别(0保密,1男,2女)
*/
private Integer sex;
/**
* 地区
*/
private Integer region;
/**
* 个性签名
*/
private String signature;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
//setter 和 getter方法省略
}
这里虽然消灭看不懂的英文注释,改为友好的中文注释,但是生成的getter/setter方法仍然很长,经常还要生成toString/hashCode/Equals等方法,其实我们只需要几个属性定义了,却不得不生成几倍的代码,大家有没有因此而头痛呢?
是不是想说有什么方法可以解决吗,请参考我的接下里的文章《mybatis generator插件系列--lombok插件 (减少百分之九十bean代码)》
本文所有代码及demo:https://gitee.com/chaocloud/generator-demo.git
最后
以上就是年轻百褶裙为你收集整理的mybatis generator插件系列--注释插件 (为实体类生成数据库字段注释)1、首先定义注释生成插件2、然后为mybatisgenerator配置插件 3、生成效果的全部内容,希望文章能够帮你解决mybatis generator插件系列--注释插件 (为实体类生成数据库字段注释)1、首先定义注释生成插件2、然后为mybatisgenerator配置插件 3、生成效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复