使用Mybatis Generator插件生成纯净代码,自定义扩展注释和注释,xml映射文件,不用修改源码!!!

本文主要是介绍使用Mybatis Generator插件生成纯净代码,自定义扩展注释和注释,xml映射文件,不用修改源码!!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看效果: (基于Mybatis-generator-core-1.4.0)

生成模型(实体): 根据MySQL库中的tb_prod_info表字段及注释自动生成.

package com.ezsyn.cloudstudy.product.dao.entity;import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;/*** 产品信息表* <p>* tb_prod_info** @author Aylven* @date 2020-04-06*/
@Getter
@Setter
@ToString
public class TbProdInfo implements Serializable {private static final long serialVersionUID = 1L;/*** 产品代码 主键*/@ApiModelProperty(value = "产品代码 主键")private String code;/*** 产品名称*/@ApiModelProperty(value = "产品名称")private String name;/*** 是否有效*/@ApiModelProperty(value = "是否有效")private Boolean enabled;/*** 创建时间*/@ApiModelProperty(value = "创建时间")private Date createTime;/*** 创建人ID*/@ApiModelProperty(value = "创建人ID")private Integer createBy;/*** 更新时间*/@ApiModelProperty(value = "更新时间")private Date updateTime;/*** 更新人ID*/@ApiModelProperty(value = "更新人ID")private Integer updateBy;
}

生成Mapper接口:生成常用的接口方法,自动生成注释,添加了@Mapper注解.

package com.ezsyn.cloudstudy.product.dao.mapper;import com.ezsyn.cloudstudy.product.dao.entity.TbProdInfo;
import org.apache.ibatis.annotations.Mapper;/*** 产品信息表* <p>* tb_prod_info** @author Aylven* @date 2020-04-06*/
@Mapper
public interface TbProdInfoMapper {/*** 根据主键删除记录*/int deleteByPrimaryKey(String code);/*** 插入全部字段*/int insert(TbProdInfo record);/*** 插入选择的字段*/int insertSelective(TbProdInfo record);/*** 根据主键查询*/TbProdInfo selectByPrimaryKey(String code);/*** 根据主键更新选择的字段*/int updateByPrimaryKeySelective(TbProdInfo record);/*** 根据主键更新全部字段*/int updateByPrimaryKey(TbProdInfo record);
}

生成mapper XML映射文件:去掉了接口方法中的jdbcType

<?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.ezsyn.cloudstudy.product.dao.mapper.TbProdInfoMapper"><resultMap id="BaseResultMap" type="com.ezsyn.cloudstudy.product.dao.entity.TbProdInfo"><id column="code" jdbcType="VARCHAR" property="code"/><result column="name" jdbcType="VARCHAR" property="name"/><result column="price" jdbcType="DECIMAL" property="price"/><result column="stock" jdbcType="INTEGER" property="stock"/><result column="enabled" jdbcType="BIT" property="enabled"/><result column="create_time" jdbcType="TIMESTAMP" property="createTime"/><result column="create_by" jdbcType="INTEGER" property="createBy"/><result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/><result column="update_by" jdbcType="INTEGER" property="updateBy"/></resultMap><sql id="Base_Column_List">code, name, price, stock, enabled, create_time, create_by, update_time, update_by</sql><select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">select<include refid="Base_Column_List"/>from tb_prod_infowhere code = #{code}</select><delete id="deleteByPrimaryKey" parameterType="java.lang.String">deletefrom tb_prod_infowhere code = #{code}</delete><insert id="insert" parameterType="com.ezsyn.cloudstudy.product.dao.entity.TbProdInfo"><selectKey keyProperty="code" order="AFTER" resultType="java.lang.String">SELECT LAST_INSERT_ID()</selectKey>insert into tb_prod_info (code, name, price,stock, enabled, create_time,create_by, update_time, update_by)values (#{code}, #{name}, #{price},#{stock}, #{enabled}, #{createTime},#{createBy}, #{updateTime}, #{updateBy})</insert><insert id="insertSelective" parameterType="com.ezsyn.cloudstudy.product.dao.entity.TbProdInfo"><selectKey keyProperty="code" order="AFTER" resultType="java.lang.String">SELECT LAST_INSERT_ID()</selectKey>insert into tb_prod_info<trim prefix="(" suffix=")" suffixOverrides=",">code,<if test="name != null">name,</if><if test="price != null">price,</if><if test="stock != null">stock,</if><if test="enabled != null">enabled,</if><if test="createTime != null">create_time,</if><if test="createBy != null">create_by,</if><if test="updateTime != null">update_time,</if><if test="updateBy != null">

这篇关于使用Mybatis Generator插件生成纯净代码,自定义扩展注释和注释,xml映射文件,不用修改源码!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141515

相关文章

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期