Maven项目中使用mybatis-generator生成代码,加注释
效果展示
pojo
/*
*
* Student.java
* Copyright(C) 2017-2020 fendo公司
* @date 2022-03-25
*/
package com.jack.pojo;
import java.util.Date;
public class Student {
/**
* 学号
*/
private String stuNo;
/**
* 名字
*/
private String stuName;
/**
* 出生日期
*/
private Date stuBornDate;
/**
* 性别
*/
private String stuSex;
/**
* 学号
* @return stu_no 学号
*/
public String getStuNo() {
return stuNo;
}
/**
* 学号
* @param stuNo 学号
*/
public void setStuNo(String stuNo) {
this.stuNo = stuNo == null ? null : stuNo.trim();
}
/**
* 名字
* @return stu_name 名字
*/
public String getStuName() {
return stuName;
}
/**
* 名字
* @param stuName 名字
*/
public void setStuName(String stuName) {
this.stuName = stuName == null ? null : stuName.trim();
}
/**
* 出生日期
* @return stu_born_date 出生日期
*/
public Date getStuBornDate() {
return stuBornDate;
}
/**
* 出生日期
* @param stuBornDate 出生日期
*/
public void setStuBornDate(Date stuBornDate) {
this.stuBornDate = stuBornDate;
}
/**
* 性别
* @return stu_sex 性别
*/
public String getStuSex() {
return stuSex;
}
/**
* 性别
* @param stuSex 性别
*/
public void setStuSex(String stuSex) {
this.stuSex = stuSex == null ? null : stuSex.trim();
}
}
dao
/*
*
* StudentMapper.java
* Copyright(C) 2017-2020 fendo公司
* @date 2022-03-25
*/
package com.jack.dao;
import com.jack.pojo.Student;
public interface StudentMapper {
/**
*
* @mbg.generated
*/
int deleteByPrimaryKey(String stuNo);
/**
*
* @mbg.generated
*/
int insert(Student record);
/**
*
* @mbg.generated
*/
int insertSelective(Student record);
/**
*
* @mbg.generated
*/
Student selectByPrimaryKey(String stuNo);
/**
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(Student record);
/**
*
* @mbg.generated
*/
int updateByPrimaryKey(Student record);
}
mapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jack.dao.StudentMapper">
<resultMap id="BaseResultMap" type="com.jack.pojo.Student">
<id column="stu_no" jdbcType="VARCHAR" property="stuNo" />
<result column="stu_name" jdbcType="VARCHAR" property="stuName" />
<result column="stu_born_date" jdbcType="DATE" property="stuBornDate" />
<result column="stu_sex" jdbcType="CHAR" property="stuSex" />
</resultMap>
<sql id="Base_Column_List">
stu_no, stu_name, stu_born_date, stu_sex
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.jack.pojo.Student">
insert into student (stu_no, stu_name, stu_born_date,
stu_sex)
values (#{stuNo,jdbcType=VARCHAR}, #{stuName,jdbcType=VARCHAR}, #{stuBornDate,jdbcType=DATE},
#{stuSex,jdbcType=CHAR})
</insert>
<insert id="insertSelective" parameterType="com.jack.pojo.Student">
insert into student
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
stu_no,
</if>
<if test="stuName != null">
stu_name,
</if>
<if test="stuBornDate != null">
stu_born_date,
</if>
<if test="stuSex != null">
stu_sex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
#{stuNo,jdbcType=VARCHAR},
</if>
<if test="stuName != null">
#{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
#{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
#{stuSex,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.jack.pojo.Student">
update student
<set>
<if test="stuName != null">
stu_name = #{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
stu_born_date = #{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
stu_sex = #{stuSex,jdbcType=CHAR},
</if>
</set>
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.jack.pojo.Student">
update student
set stu_name = #{stuName,jdbcType=VARCHAR},
stu_born_date = #{stuBornDate,jdbcType=DATE},
stu_sex = #{stuSex,jdbcType=CHAR}
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<resultMap id="BaseResultMap" type="com.jack.pojo.Student">
<id column="stu_no" jdbcType="VARCHAR" property="stuNo" />
<result column="stu_name" jdbcType="VARCHAR" property="stuName" />
<result column="stu_born_date" jdbcType="DATE" property="stuBornDate" />
<result column="stu_sex" jdbcType="CHAR" property="stuSex" />
</resultMap>
<sql id="Base_Column_List">
stu_no, stu_name, stu_born_date, stu_sex
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.jack.pojo.Student">
insert into student (stu_no, stu_name, stu_born_date,
stu_sex)
values (#{stuNo,jdbcType=VARCHAR}, #{stuName,jdbcType=VARCHAR}, #{stuBornDate,jdbcType=DATE},
#{stuSex,jdbcType=CHAR})
</insert>
<insert id="insertSelective" parameterType="com.jack.pojo.Student">
insert into student
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
stu_no,
</if>
<if test="stuName != null">
stu_name,
</if>
<if test="stuBornDate != null">
stu_born_date,
</if>
<if test="stuSex != null">
stu_sex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
#{stuNo,jdbcType=VARCHAR},
</if>
<if test="stuName != null">
#{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
#{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
#{stuSex,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.jack.pojo.Student">
update student
<set>
<if test="stuName != null">
stu_name = #{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
stu_born_date = #{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
stu_sex = #{stuSex,jdbcType=CHAR},
</if>
</set>
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.jack.pojo.Student">
update student
set stu_name = #{stuName,jdbcType=VARCHAR},
stu_born_date = #{stuBornDate,jdbcType=DATE},
stu_sex = #{stuSex,jdbcType=CHAR}
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<resultMap id="BaseResultMap" type="com.jack.pojo.Student">
<id column="stu_no" jdbcType="VARCHAR" property="stuNo" />
<result column="stu_name" jdbcType="VARCHAR" property="stuName" />
<result column="stu_born_date" jdbcType="DATE" property="stuBornDate" />
<result column="stu_sex" jdbcType="CHAR" property="stuSex" />
</resultMap>
<sql id="Base_Column_List">
stu_no, stu_name, stu_born_date, stu_sex
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.jack.pojo.Student">
insert into student (stu_no, stu_name, stu_born_date,
stu_sex)
values (#{stuNo,jdbcType=VARCHAR}, #{stuName,jdbcType=VARCHAR}, #{stuBornDate,jdbcType=DATE},
#{stuSex,jdbcType=CHAR})
</insert>
<insert id="insertSelective" parameterType="com.jack.pojo.Student">
insert into student
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
stu_no,
</if>
<if test="stuName != null">
stu_name,
</if>
<if test="stuBornDate != null">
stu_born_date,
</if>
<if test="stuSex != null">
stu_sex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
#{stuNo,jdbcType=VARCHAR},
</if>
<if test="stuName != null">
#{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
#{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
#{stuSex,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.jack.pojo.Student">
update student
<set>
<if test="stuName != null">
stu_name = #{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
stu_born_date = #{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
stu_sex = #{stuSex,jdbcType=CHAR},
</if>
</set>
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.jack.pojo.Student">
update student
set stu_name = #{stuName,jdbcType=VARCHAR},
stu_born_date = #{stuBornDate,jdbcType=DATE},
stu_sex = #{stuSex,jdbcType=CHAR}
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<resultMap id="BaseResultMap" type="com.jack.pojo.Student">
<id column="stu_no" jdbcType="VARCHAR" property="stuNo" />
<result column="stu_name" jdbcType="VARCHAR" property="stuName" />
<result column="stu_born_date" jdbcType="DATE" property="stuBornDate" />
<result column="stu_sex" jdbcType="CHAR" property="stuSex" />
</resultMap>
<sql id="Base_Column_List">
stu_no, stu_name, stu_born_date, stu_sex
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from student
where stu_no = #{stuNo,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.jack.pojo.Student">
insert into student (stu_no, stu_name, stu_born_date,
stu_sex)
values (#{stuNo,jdbcType=VARCHAR}, #{stuName,jdbcType=VARCHAR}, #{stuBornDate,jdbcType=DATE},
#{stuSex,jdbcType=CHAR})
</insert>
<insert id="insertSelective" parameterType="com.jack.pojo.Student">
insert into student
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
stu_no,
</if>
<if test="stuName != null">
stu_name,
</if>
<if test="stuBornDate != null">
stu_born_date,
</if>
<if test="stuSex != null">
stu_sex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stuNo != null">
#{stuNo,jdbcType=VARCHAR},
</if>
<if test="stuName != null">
#{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
#{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
#{stuSex,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.jack.pojo.Student">
update student
<set>
<if test="stuName != null">
stu_name = #{stuName,jdbcType=VARCHAR},
</if>
<if test="stuBornDate != null">
stu_born_date = #{stuBornDate,jdbcType=DATE},
</if>
<if test="stuSex != null">
stu_sex = #{stuSex,jdbcType=CHAR},
</if>
</set>
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.jack.pojo.Student">
update student
set stu_name = #{stuName,jdbcType=VARCHAR},
stu_born_date = #{stuBornDate,jdbcType=DATE},
stu_sex = #{stuSex,jdbcType=CHAR}
where stu_no = #{stuNo,jdbcType=VARCHAR}
</update>
</mapper>
创建maven项目,引入需要依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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.geekmice.mvnmybatis</groupId>
<artifactId>mvnmybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
<!--该插件主要是mybatis代码生成器-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<dependency>
<groupId>com.geekmice.springbootoraclecrud.vo</groupId>
<artifactId>MyCommentGenerator</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/customjar/a2.jar</systemPath>
</dependency>
</dependencies>
<configuration>
<!-- 配置文件的路径-->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
</project>
目录结构
需要生成哪个表,将student,修改对应表,双击maven中mybatis-generator
扫描二维码关注公众号,回复:
14462624 查看本文章

自定义mybatis代码生成
关键代码
package com.geekmice.springbootoraclecrud.vo;
import static org.mybatis.generator.internal.util.StringUtility.isTrue;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import org.mybatis.generator.api.CommentGenerator;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.CompilationUnit;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.InnerClass;
import org.mybatis.generator.api.dom.java.InnerEnum;
import org.mybatis.generator.api.dom.java.JavaElement;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.Parameter;
import org.mybatis.generator.api.dom.java.TopLevelClass;
import org.mybatis.generator.api.dom.xml.XmlElement;
import org.mybatis.generator.config.MergeConstants;
import org.mybatis.generator.config.PropertyRegistry;
/**
* @Title: MyCommentGenerator.java
* @Package com.fendo.mybatis_generator
* @Description: mybatis generator 自定义comment生成器.
* 基于MBG 1.3.5
* @author pmb
* @version V1.0
*/
public class MyCommentGenerator implements CommentGenerator {
/**
* properties配置文件
*/
private Properties 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());
}
/**
* Java类的类注释
*/
@Override
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
if (suppressAllComments) {
return;
}
StringBuilder sb = new StringBuilder();
innerClass.addJavaDocLine("/**");
sb.append(" * ");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append(" ");
sb.append(getDateString());
innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
innerClass.addJavaDocLine(" */");
}
/**
* 为类添加注释
*/
@Override
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
if (suppressAllComments) {
return;
}
StringBuilder sb = new StringBuilder();
innerClass.addJavaDocLine("/**");
sb.append(" * ");
sb.append(" * ");
sb.append(introspectedTable.getFullyQualifiedTable());
innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
sb.setLength(0);
sb.append(" * @author ");
sb.append(systemPro.getProperty("user.name"));
sb.append(" ");
sb.append(currentDateStr);
innerClass.addJavaDocLine(" */");
}
/**
* Mybatis的Mapper.xml文件里面的注释
*/
@Override
public void addComment(XmlElement xmlElement) {
}
/**
*
*@Title addConfigurationProperties
*@Description: 从该配置中的任何属性添加此实例的属性CommentGenerator配置。
* 这个方法将在任何其他方法之前被调用。
*@Author fendo
*@Date 2017年10月5日 下午3:45:58
*@return
*@throws
*/
@Override
public void addConfigurationProperties(Properties properties) {
this.properties.putAll(properties);
suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE));
suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS));
}
/**
*
*@Title getDateString
*@Description: 此方法返回格式化的日期字符串以包含在Javadoc标记中和XML注释。 如果您不想要日期,则可以返回null在这些文档元素中。
*@Author fendo
*@Date 2017年10月5日 下午3:45:58
*@return
*@throws
*/
protected String getDateString() {
String result = null;
if (!suppressDate) {
result = currentDateStr;
}
return result;
}
/**
*
*@Title addJavadocTag
*@Description: 此方法为其添加了自定义javadoc标签。
*@Author fendo
*@Date 2017年10月5日 下午3:49:05
*@param javaElement
*@param markAsDoNotDelete
*@throws
*/
protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) {
javaElement.addJavaDocLine(" *");
StringBuilder sb = new StringBuilder();
sb.append(" * ");
sb.append(MergeConstants.NEW_ELEMENT_TAG);
if (markAsDoNotDelete) {
sb.append(" do_not_delete_during_merge");
}
String s = getDateString();
if (s != null) {
sb.append(' ');
sb.append(s);
}
javaElement.addJavaDocLine(sb.toString());
}
/**
* 为枚举添加注释
*/
@Override
public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
if (suppressAllComments) {
return;
}
StringBuilder sb = new StringBuilder();
innerEnum.addJavaDocLine("/**");
sb.append(" * ");
sb.append(introspectedTable.getFullyQualifiedTable());
innerEnum.addJavaDocLine(sb.toString().replace("\n", " "));
innerEnum.addJavaDocLine(" */");
}
/**
* Java属性注释
*/
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
if (suppressAllComments) {
return;
}
StringBuilder sb = new StringBuilder();
field.addJavaDocLine("/**");
sb.append(" * ");
sb.append(introspectedTable.getFullyQualifiedTable());
field.addJavaDocLine(sb.toString().replace("\n", " "));
field.addJavaDocLine(" */");
}
/**
* 为字段添加注释
*/
@Override
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(" */");
}
/**
* 普通方法的注释,这里主要是XXXMapper.java里面的接口方法的注释
*/
@Override
public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
if (suppressAllComments) {
return;
}
method.addJavaDocLine("/**");
addJavadocTag(method, false);
method.addJavaDocLine(" */");
}
/**
* 给getter方法加注释
*/
@Override
public void addGetterComment(Method method, IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
if (suppressAllComments) {
return;
}
method.addJavaDocLine("/**");
StringBuilder sb = new StringBuilder();
sb.append(" * ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString().replace("\n", " "));
sb.setLength(0);
sb.append(" * @return ");
sb.append(introspectedColumn.getActualColumnName());
sb.append(" ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString().replace("\n", " "));
method.addJavaDocLine(" */");
}
/**
* 给Java文件加注释,这个注释是在文件的顶部,也就是package上面。
*/
@Override
public void addJavaFileComment(CompilationUnit compilationUnit) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
compilationUnit.addFileCommentLine("/*");
compilationUnit.addFileCommentLine("*");
compilationUnit.addFileCommentLine("* " + compilationUnit.getType().getShortName() + ".java");
compilationUnit.addFileCommentLine("* Copyright(C) 2017-2020 fendo公司");
compilationUnit.addFileCommentLine("* @date " + sdf.format(new Date()) + "");
compilationUnit.addFileCommentLine("*/");
}
/**
* 为模型类添加注释
*/
@Override
public void addModelClassComment(TopLevelClass arg0, IntrospectedTable arg1) {
}
/**
* 为调用此方法作为根元素的第一个子节点添加注释。
*/
@Override
public void addRootComment(XmlElement arg0) {
}
/**
* 给setter方法加注释
*/
@Override
public void addSetterComment(Method method, IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
if (suppressAllComments) {
return;
}
method.addJavaDocLine("/**");
StringBuilder sb = new StringBuilder();
sb.append(" * ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString().replace("\n", " "));
Parameter parm = method.getParameters().get(0);
sb.setLength(0);
sb.append(" * @param ");
sb.append(parm.getName());
sb.append(" ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString().replace("\n", " "));
method.addJavaDocLine(" */");
}
}
实践
需要的mybatis配置文件
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>
<!--
出现错误:Caused by: java. lang.ClassNotFoundException: com.mysql.jdbc.Driver
解决办法:将本地的MAVEN仓库中的mysql驱动引入进来
-->
<classPathEntry
location="D:\DevTools\apache-maven-3.6.3\localrepository\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar"/>
<context id="mysqlgenerator" targetRuntime="MyBatis3">
<!--不生成注释-->
<commentGenerator type="com.geekmice.springbootoraclecrud.vo.MyCommentGenerator">
<property name="suppressAllComments" value="false"/>
<property name="suppressDate" value="true"></property>
</commentGenerator>
<!-- 配置数据库连接 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=true"
userId="root"
password="root"/>
<!-- 指定javaBean生成的位置 -->
<javaModelGenerator targetPackage="com.jack.pojo" targetProject="src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--指定sql映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 指定dao接口生成的位置,mapper接口 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.jack.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- table表生成对应的DoaminObject -->
<table tableName="student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 配置文件的根元素 -->
<configuration>
<!--配置全局属性-->
<settings>
<!--使用jdbc的getGeneratedKeys获取数据库自增主键值-->
<setting name="useGeneratedKeys" value="true"/>
<!--使用列标签替换列别名 默认未true-->
<setting name="useColumnLabel" value="true"/>
<!--开启驼峰式命名转换:Table{create_time} -> Entity{createTime}-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>