当前位置: 首页 > news >正文

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题

easycode插件生成的mapper.xml文件字段之间逗号丢失,如图

解决办法

将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vmGlobal Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext

Template的mapper.xml.vm(复制粘贴)

##引入mybatis支持
$!{mybatisSupport.vm}##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Dao.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())#set($pk = $tableInfo.pkColumn.get(0))
#end<?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="$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao"><resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)<result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
#end</resultMap><!--查询单个--><select id="queryById" resultMap="$!{tableInfo.name}Map">select#allSqlColumn()from $!tableInfo.obj.namewhere $!pk.obj.name = #{$!pk.name}</select><!--查询指定行数据--><select id="queryAllByLimit" resultMap="$!{tableInfo.name}Map">select#allSqlColumn()from $!tableInfo.obj.name<where>
#foreach($column in $tableInfo.fullColumn)<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">and $!column.obj.name = #{$!column.name}</if>
#end</where>limit #{pageable.offset}, #{pageable.pageSize}</select><!--统计总行数--><select id="count" resultType="java.lang.Long">select count(1)from $!tableInfo.obj.name<where>
#foreach($column in $tableInfo.fullColumn)<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">and $!column.obj.name = #{$!column.name}</if>
#end</where></select><!--新增所有列--><insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true">insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($foreach.hasNext), #end#end)values (#foreach($column in $tableInfo.otherColumn)#{$!{column.name}}#if($foreach.hasNext), #end#end)</insert><insert id="insertBatch" keyProperty="$!pk.name" useGeneratedKeys="true">insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($foreach.hasNext), #end#end)values<foreach collection="entities" item="entity" separator=",">(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($foreach.hasNext), #end#end)</foreach></insert><insert id="insertOrUpdateBatch" keyProperty="$!pk.name" useGeneratedKeys="true">insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($foreach.hasNext), #end#end)values<foreach collection="entities" item="entity" separator=",">(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($foreach.hasNext), #end#end)</foreach>on duplicate key update#foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name)#if($foreach.hasNext),#end#end</insert><!--通过主键修改数据--><update id="update">update $!{tableInfo.obj.name}<set>
#foreach($column in $tableInfo.otherColumn)<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">$!column.obj.name = #{$!column.name},</if>
#end</set>where $!pk.obj.name = #{$!pk.name}</update><!--通过主键删除--><delete id="deleteById">delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}</delete></mapper>

 Global Config的mybatisSupport.vm(复制粘贴)

##针对Mybatis 进行支持,主要用于生成xml文件
#foreach($column in $tableInfo.fullColumn)##储存列类型$tool.call($column.ext.put("sqlType", $tool.getField($column.obj.dataType, "typeName")))#if($tool.newHashSet("java.lang.String").contains($column.type))#set($jdbcType="VARCHAR")#elseif($tool.newHashSet("java.lang.Boolean", "boolean").contains($column.type))#set($jdbcType="BOOLEAN")#elseif($tool.newHashSet("java.lang.Byte", "byte").contains($column.type))#set($jdbcType="BYTE")#elseif($tool.newHashSet("java.lang.Integer", "int", "java.lang.Short", "short").contains($column.type))#set($jdbcType="INTEGER")#elseif($tool.newHashSet("java.lang.Long", "long").contains($column.type))#set($jdbcType="INTEGER")#elseif($tool.newHashSet("java.lang.Float", "float", "java.lang.Double", "double").contains($column.type))#set($jdbcType="NUMERIC")#elseif($tool.newHashSet("java.util.Date", "java.sql.Timestamp", "java.time.Instant", "java.time.LocalDateTime", "java.time.OffsetDateTime", "	java.time.ZonedDateTime").contains($column.type))#set($jdbcType="TIMESTAMP")#elseif($tool.newHashSet("java.sql.Date", "java.time.LocalDate").contains($column.type))#set($jdbcType="TIMESTAMP")#else##其他类型#set($jdbcType="VARCHAR")#end$tool.call($column.ext.put("jdbcType", $jdbcType))
#end##定义宏,查询所有列
#macro(allSqlColumn)#foreach($column in $tableInfo.fullColumn)$column.obj.name#if($foreach.hasNext), #end#end#end

实现效果

http://www.lryc.cn/news/498252.html

相关文章:

  • 【Linux测试题】
  • python使用openpyxl处理excel
  • 【JavaWeb后端学习笔记】Mybatis基础操作以及动态SQL(增、删、改、查)
  • 基于MATLAB野外观测站生态气象数据处理分析实践应用
  • IP 地理位置定位技术原理概述
  • C语言(分支结构)
  • 批量将不同的工作簿合并到同一个Excel文件
  • 详解AI网关助力配电房实现智能化管控应用
  • 2025美赛数学建模常用数据库网站大全
  • Wordpress设置固定链接形式后出现404错误
  • 我最近在干什么【1】
  • [Vue3]computed原理
  • Vue工程化开发中各文件的作用
  • 【c++笔试强训】(第三十一篇)
  • Go 1.19.4 HTTP编程-Day 20
  • MySQL 8.0 的主主复制(双向复制)
  • 四、自然语言处理_03LSTM与GRU
  • 磁盘系列基础知识(一):硬盘;IDE;ATA;SATA;AHCI;SCSI;SAS
  • taro小程序进入腾讯验证码
  • 原子类相关
  • RabbitMQ 客户端 连接、发送、接收处理消息
  • Java Web 3 Axios Vue组件库
  • 双目相机的标定,视差图,深度图,点云生成思路与实现。
  • 【H2O2|全栈】MySQL的基本操作(三)
  • 2、C++命名空间
  • Elemenu-UI时间日期单个组件,限制当前日期之后的时间
  • flutter修改状态栏学习
  • 解决Unity编辑器Inspector视图中文注释乱码
  • 关于csgo的游戏作弊与封禁
  • 严格单元测试造就安全软件