IDEA插件EasyCode及MyBatis最優(yōu)配置步驟詳解
具體安裝步驟,不再贅述,僅附上個(gè)人工作、學(xué)習(xí)中的對(duì) EasyCode 的詳細(xì)配置。
插件鏈接地址:https://gitee.com/makejava/EasyCode
Type Mapper
varchar(\(\d+\))? java.lang.String char(\(\d+\))? java.lang.String text java.lang.String decimal(\(\d+\))? java.lang.Double decimal(\(\d+,\d+\))? java.lang.Double integer java.lang.Integer int(\(\d+\))? java.lang.Integer int4 java.lang.Integer int8 java.lang.Long bigint(\(\d+\))? java.lang.Long datetime(\(\d+\))? java.time.LocalDateTime timestamp java.time.LocalDateTime boolean java.lang.Boolean tinyint(\(\d+\))? java.lang.Integer smallint(\(\d+\))? java.lang.Integer double(\(\d+\))? java.lang.Double double(\(\d+,\d+\))? java.lang.Double
Template Setting
entity.java
##初始化定義 $!init ##引入宏定義 $!define ##使用宏定義設(shè)置回調(diào)(保存位置與文件后綴) #save("/entity", ".java") ##使用宏定義設(shè)置包后綴 #setPackageSuffix("entity") ##使用全局變量實(shí)現(xiàn)默認(rèn)包導(dǎo)入 $!autoImport import java.io.Serializable; ##使用宏定義實(shí)現(xiàn)類注釋信息 #tableComment("實(shí)體類") public class $!{tableInfo.name} implements Serializable { private static final long serialVersionUID = $!tool.serial(); #foreach($column in $tableInfo.fullColumn) #if(${column.comment})/** * ${column.comment} */#end private $!{tool.getClsNameByFullName($column.type)} $!{column.name}; #end public $!{tableInfo.name}() { } public $!{tableInfo.name}(#foreach($column in $tableInfo.fullColumn)$!{tool.getClsNameByFullName($column.type)} $!column.name #if($velocityCount != $tableInfo.fullColumn.size()), #end#end) { #foreach($column in $tableInfo.fullColumn) this.$!column.name = $!column.name;#end } #foreach($column in $tableInfo.fullColumn) ##使用宏定義實(shí)現(xiàn)get,set方法 #getSetMethod($column) #end @Override public String toString() { StringBuilder str = new StringBuilder(); str.append("$!{tableInfo.name}{"); #foreach( $column in $tableInfo.fullColumn ) str.append("$!column.name=").append(this.$!column.name)#if( $foreach.hasNext ).append(", ")#end; #end str.append('}'); return str.toString(); } }
DTO.java
##導(dǎo)入宏定義 $!define ##保存文件(宏定義) #save("/dto", "DTO.java") ##包路徑(宏定義) #setPackageSuffix("dto") ##自動(dòng)導(dǎo)入包(全局變量) $!autoImport ##import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; import lombok.Data; ##import com.baomidou.mybatisplus.annotation.IdType; ##import com.baomidou.mybatisplus.annotation.TableId; ##表注釋(宏定義) #tableComment("DTO") @Data public class $!{tableInfo.name}DTO implements Serializable { private static final long serialVersionUID = $!tool.serial(); #foreach($column in $tableInfo.fullColumn) #if(${column.comment})/**${column.comment}*/#end private $!{tool.getClsNameByFullName($column.type)} $!{column.name}; #end }
mapper.java
##定義初始變量 #set($tableName = $tool.append($tableInfo.name, "Mapper")) ##設(shè)置回調(diào) $!callback.setFileName($tool.append($tableName, ".java")) $!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper")) ##拿到主鍵 #if(!$tableInfo.pkColumn.isEmpty()) #set($pk = $tableInfo.pkColumn.get(0)) #end #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}mapper; import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name}; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; #set($time=$!time.currTime()) #set($time=$time.substring(0,11)) #set($time=$time.replace("-","/")) /** * <p> * $!{tableInfo.comment}($!{tableInfo.name})表數(shù)據(jù)庫(kù)訪問(wèn)層 * </p> * * @author:$!author * @date:$!time */ @Mapper public interface $!{tableName} { /** * 通過(guò)ID查詢單條數(shù)據(jù) * * @param $!pk.name 主鍵 * @return 實(shí)例對(duì)象 */ $!{tableInfo.name} queryById($!pk.shortType $!pk.name); /** * 通過(guò)實(shí)體作為篩選條件查詢 * * @param $!tool.firstLowerCase($!{tableInfo.name}) 實(shí)例對(duì)象 * @return 對(duì)象列表 */ List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})); /** * 通過(guò)實(shí)體作為篩選條件查詢條數(shù) * * @param $!tool.firstLowerCase($!{tableInfo.name}) 實(shí)例對(duì)象 * @return 條數(shù) */ int queryAllCount($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})); /** * 新增數(shù)據(jù) * * @param $!tool.firstLowerCase($!{tableInfo.name}) 實(shí)例對(duì)象 * @return 影響行數(shù) */ int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})); /** * 新增選擇列 * * @param $!tool.firstLowerCase($!{tableInfo.name}) 實(shí)例對(duì)象 * @return 影響行數(shù) */ int insertSelective($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})); /** * 修改數(shù)據(jù) * * @param $!tool.firstLowerCase($!{tableInfo.name}) 實(shí)例對(duì)象 * @return 影響行數(shù) */ int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})); /** * 通過(guò)主鍵刪除數(shù)據(jù) * * @param $!pk.name 主鍵 * @return 影響行數(shù) */ int deleteById($!pk.shortType $!pk.name); /** * 批量新增 * @param recordList * @return 影響行數(shù) */ int batchInsert(@Param("recordList") List<$!{tableInfo.name}> recordList); /** * 批量修改 * @param recordList * @return 影響行數(shù) */ int batchUpdate(@Param("recordList") List<$!{tableInfo.name}> recordList); /** * 根據(jù)主鍵批量刪除 * @param ids 主鍵s * @return 影響行數(shù) */ int batchDelete(@Param("ids") String[] ids); }
serviceImpl.java
##初始化定義 $!init ##定義初始變量 #set($tableName = $tool.append($tableInfo.name, "ServiceImpl")) ##設(shè)置回調(diào) $!callback.setFileName($tool.append($tableName, ".java")) $!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl")) ##拿到主鍵 #if(!$tableInfo.pkColumn.isEmpty()) #set($pk = $tableInfo.pkColumn.get(0)) #end #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl; import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper; import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; #set($time=$!time.currTime()) #set($time=$time.substring(0,11)) #set($time=$time.replace("-","/")) /** * <p> * $!{tableInfo.comment}($!{tableInfo.name})表服務(wù)實(shí)現(xiàn)類 * </p> * * @author:$!author * @date:$!time */ @Service("/$!tool.firstLowerCase($!{tableInfo.name})Service") public class $!{tableName} implements $!{tableInfo.name}Service { @Autowired private $!{tableInfo.name}Mapper $!tool.firstLowerCase($!{tableInfo.name})Mapper; }
service.java
##定義初始變量 #set($tableName = $tool.append($tableInfo.name, "Service")) ##設(shè)置回調(diào) $!callback.setFileName($tool.append($tableName, ".java")) $!callback.setSavePath($tool.append($tableInfo.savePath, "/service")) ##拿到主鍵 #if(!$tableInfo.pkColumn.isEmpty()) #set($pk = $tableInfo.pkColumn.get(0)) #end #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service; #set($time=$!time.currTime()) #set($time=$time.substring(0,11)) #set($time=$time.replace("-","/")) /** * <p> * $!{tableInfo.comment}($!{tableInfo.name})表服務(wù)接口 * </p> * * @author:$!author * @date:$!time */ public interface $!{tableName} { }
controller.java
##定義初始變量 #set($tableName = $tool.append($tableInfo.name, "Controller")) ##設(shè)置回調(diào) $!callback.setFileName($tool.append($tableName, ".java")) $!callback.setSavePath($tool.append($tableInfo.savePath, "/controller")) ##拿到主鍵 #if(!$tableInfo.pkColumn.isEmpty()) #set($pk = $tableInfo.pkColumn.get(0)) #end #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller; import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; #set($time=$!time.currTime()) #set($time=$time.substring(0,11)) #set($time=$time.replace("-","/")) /** * <p> * $!{tableInfo.comment}($!{tableInfo.name})表控制層 * </p> * * @author:$!author * @date:$!time */ @RestController @RequestMapping("/$!tool.firstLowerCase($tableInfo.name)") public class $!{tableName} { @Autowired private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service; }
mysql-mapper.xml
##引入mybatis支持 $!mybatisSupport ##設(shè)置保存名稱與保存位置 $!callback.setFileName($tool.append($!{tableInfo.name}, "Mapper.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}.mapper.$!{tableInfo.name}Mapper"> <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map"> #foreach($column in $tableInfo.fullColumn) <result property="$!column.name" column="$!column.name" jdbcType="$!column.ext.jdbcType"/> #end </resultMap> <!-- 偽列 --> <sql id="columns"> #foreach($column in $tableInfo.fullColumn) a.$!column.obj.name AS $!column.name #if($velocityCount != $tableInfo.fullColumn.size()),#end #end </sql> <!-- 查詢條件 --> <sql id="whereSql"> <where> #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> and a.$!column.obj.name = #{$!column.name} </if> #end </where> </sql> <!-- 通過(guò)ID查詢單條數(shù)據(jù) --> <select id="queryById" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a where a.$!pk.obj.name = #{$!pk.name} </select> <!-- 通過(guò)實(shí)體作為篩選條件查詢 --> <select id="queryAll" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 通過(guò)實(shí)體作為篩選條件查詢條數(shù) --> <select id="queryAllCount" resultType="java.lang.Integer"> select count(1) from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 新增數(shù)據(jù) --> <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end) values (#foreach($column in $tableInfo.fullColumn)#{$!{column.name}}#if($velocityHasNext), #end#end) </insert> <!-- 新增選擇列 --> <insert id="insertSelective" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="(" suffix=")" suffixOverrides="," > #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> $!column.obj.name, </if> #end </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> #{$!column.name,jdbcType=$!column.ext.jdbcType}, </if> #end </trim> </insert> <!-- 修改數(shù)據(jù) --> <update id="update"> update $!{tableInfo.obj.parent.name}.$!{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> <!-- 通過(guò)主鍵刪除數(shù)據(jù) --> <delete id="deleteById"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name} </delete> <!-- 批量新增 --> <insert id="batchInsert" parameterType="java.util.List"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} ( #foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end ) values <foreach collection="recordList" index="index" item="item" separator=","> ( #foreach($column in $tableInfo.fullColumn)#{item.$!{column.name}}#if($velocityHasNext), #end#end ) </foreach> </insert> <!-- 批量修改 --> <update id="batchUpdate" parameterType="java.util.List"> update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="set" suffixOverrides=","> #foreach($column in $tableInfo.otherColumn) <trim prefix="$!column.obj.name =case $!pk.obj.name" suffix="end,"> <foreach collection="recordList" index="index" item="item"> <if test="item.$!column.name !=null "> when #{item.$!pk.name} then #{item.$!column.name} </if> <if test="item.$!column.name ==null "> when #{item.$!pk.name} then $!{tableInfo.obj.name}.$!column.obj.name </if> </foreach> </trim> #end </trim> where $!pk.obj.name in( <foreach collection="recordList" index="index" item="item" separator=","> #{item.$!pk.name} </foreach> ) </update> <!-- 根據(jù)主鍵批量刪除 --> <delete id="batchDelete" parameterType="java.lang.String"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name in ( <foreach collection="ids" index="index" item="item" separator=","> #{item} </foreach> ) </delete> </mapper>
oracle-mapper.xml
##引入mybatis支持 $!mybatisSupport ##設(shè)置保存名稱與保存位置 $!callback.setFileName($tool.append($!{tableInfo.name}, "Mapper.xml")) $!callback.setSavePath($tool.append($tableInfo.savePath, "/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}.mapper.$!{tableInfo.name}Mapper"> <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map"> #foreach($column in $tableInfo.fullColumn) <result property="$!column.name" column="$!column.name" jdbcType="$!column.ext.jdbcType"/> #end </resultMap> <!-- 偽列 --> <sql id="columns"> #foreach($column in $tableInfo.fullColumn) a.$!column.obj.name AS $!column.name #if($velocityCount != $tableInfo.fullColumn.size()),#end #end </sql> <!-- 查詢條件 --> <sql id="whereSql"> <where> #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> and a.$!column.obj.name = #{$!column.name} </if> #end </where> </sql> <!-- 通過(guò)ID查詢單條數(shù)據(jù) --> <select id="queryById" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a where a.$!pk.obj.name = #{$!pk.name} </select> <!-- 通過(guò)實(shí)體作為篩選條件查詢 --> <select id="queryAll" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 通過(guò)實(shí)體作為篩選條件查詢條數(shù) --> <select id="queryAllCount" resultType="java.lang.Integer"> select count(1) from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 新增數(shù)據(jù) --> <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end) values (#foreach($column in $tableInfo.fullColumn)#{$!{column.name}}#if($velocityHasNext), #end#end) </insert> <!-- 新增選擇列 --> <insert id="insertSelective" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="(" suffix=")" suffixOverrides="," > #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> $!column.obj.name, </if> #end </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > #foreach($column in $tableInfo.fullColumn) <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end"> #{$!column.name,jdbcType=$!column.ext.jdbcType}, </if> #end </trim> </insert> <!-- 修改數(shù)據(jù) --> <update id="update"> update $!{tableInfo.obj.parent.name}.$!{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> <!-- 通過(guò)主鍵刪除數(shù)據(jù) --> <delete id="deleteById"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name} </delete> <!-- 批量新增 --> <insert id="batchInsert" parameterType="java.util.List"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} ( #foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end ) ( <foreach collection="recordList" index="index" item="item" separator=","> ( select #foreach($column in $tableInfo.fullColumn)#{item.$!{column.name}}#if($velocityHasNext), #end#end from dual ) </foreach> ) </insert> <!-- 批量修改 --> <update id="batchUpdate" parameterType="java.util.List"> begin <foreach collection="recordList" index="index" item="item" separator=";"> update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <set> #foreach($column in $tableInfo.otherColumn) $!column.obj.name = #{item.$!column.name} #end </set> where ID = #{item.$!pk.obj.name} </foreach> ;end; </update> <!-- 根據(jù)主鍵批量刪除 --> <delete id="batchDelete" parameterType="java.lang.String"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name in ( <foreach collection="ids" index="index" item="item" separator=","> #{item} </foreach> ) </delete> </mapper>
Global Config
init
##初始化區(qū)域 ##去掉表的t_前綴 #if($tableInfo.obj.name.startsWith("t_")) $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(2))) #end ##參考阿里巴巴開發(fā)手冊(cè),POJO 類中布爾類型的變量,都不要加 is 前綴,否則部分框架解析會(huì)引起序列化錯(cuò)誤 #foreach($column in $tableInfo.fullColumn) #if($column.name.startsWith("is") && $column.type.equals("java.lang.Boolean")) $!column.setName($tool.firstLowerCase($column.name.substring(2))) #end #end ##實(shí)現(xiàn)動(dòng)態(tài)排除列 #set($temp = $tool.newHashSet("testCreateTime", "otherColumn")) #foreach($item in $temp) #set($newList = $tool.newArrayList()) #foreach($column in $tableInfo.fullColumn) #if($column.name!=$item) ##帶有反回值的方法調(diào)用時(shí)使用$tool.call來(lái)消除返回值 $tool.call($newList.add($column)) #end #end ##重新保存 $tableInfo.setFullColumn($newList) #end ##對(duì)importList進(jìn)行篡改 #set($temp = $tool.newHashSet()) #foreach($column in $tableInfo.fullColumn) #if(!$column.type.startsWith("java.lang.")) ##帶有反回值的方法調(diào)用時(shí)使用$tool.call來(lái)消除返回值 $tool.call($temp.add($column.type)) #end #end ##覆蓋 #set($importList = $temp)
define
##(Velocity宏定義) ##定義設(shè)置表名后綴的宏定義,調(diào)用方式:#setTableSuffix("Test") #macro(setTableSuffix $suffix) #set($tableName = $!tool.append($tableInfo.name, $suffix)) #end ##定義設(shè)置包名后綴的宏定義,調(diào)用方式:#setPackageSuffix("Test") #macro(setPackageSuffix $suffix) #if($suffix!="")package #end#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix; #end ##定義直接保存路徑與文件名簡(jiǎn)化的宏定義,調(diào)用方式:#save("/entity", ".java") #macro(save $path $fileName) $!callback.setSavePath($tool.append($tableInfo.savePath, $path)) $!callback.setFileName($tool.append($tableInfo.name, $fileName)) #end ##定義表注釋的宏定義,調(diào)用方式:#tableComment("注釋信息") #macro(tableComment $desc) #set($time=$!time.currTime()) #set($time=$time.substring(0,11)) #set($time=$time.replace("-","/")) /** * <p> * $!{tableInfo.comment}($!{tableInfo.name})$desc * </p> * * @author:$!author * @date:$!time */ #end ##定義GET,SET方法的宏定義,調(diào)用方式:#getSetMethod($column) #macro(getSetMethod $column) public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() { return $!{column.name}; } public void set$!{tool.firstUpperCase($column.name)}($!{tool.getClsNameByFullName($column.type)} $!{column.name}) { #if(${column.type.equals("java.lang.String")})this.$!{column.name} = $!{column.name}== null ? null : $!{column.name}.trim(); #else this.$!{column.name} = $!{column.name};#end} #end
mybatisSupport
##針對(duì)Mybatis 進(jìn)行支持,主要用于生成xml文件 #foreach($column in $tableInfo.fullColumn) ##儲(chǔ)存列類型 $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="OTHER") #end $tool.call($column.ext.put("jdbcType", $jdbcType)) #end ##定義宏,查詢所有列 #macro(allSqlColumn)#foreach($column in $tableInfo.fullColumn)$column.obj.name#if($velocityHasNext), #end#end#end
到此這篇關(guān)于IDEA插件EasyCode MyBatis最優(yōu)配置步驟詳解的文章就介紹到這了,更多相關(guān)idea 插件EasyCode 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Spring Framework 時(shí)常犯的十大錯(cuò)誤(小結(jié))
這篇文章主要介紹了使用Spring Framework 時(shí)常犯的十大錯(cuò)誤(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Bean?Searcher配合SpringBoot的使用詳解
這篇文章主要介紹了Bean?Searcher配合SpringBoot的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06Java異常處理UncaughtExceptionHandler使用實(shí)例代碼詳解
當(dāng)一個(gè)線程由于未捕獲異常即將終止時(shí),Java虛擬機(jī)將使用thread . getuncaughtexceptionhandler()查詢線程的uncaughtException處理程序,并調(diào)用處理程序的uncaughtException方法,將線程和異常作為參數(shù)傳遞2023-03-03Spring?Boot?使用觀察者模式實(shí)現(xiàn)實(shí)時(shí)庫(kù)存管理的步驟
在現(xiàn)代軟件開發(fā)中,實(shí)時(shí)數(shù)據(jù)處理非常關(guān)鍵,本文提供了一個(gè)使用SpringBoot和觀察者模式開發(fā)實(shí)時(shí)庫(kù)存管理系統(tǒng)的詳細(xì)教程,步驟包括創(chuàng)建項(xiàng)目、定義實(shí)體類、實(shí)現(xiàn)觀察者模式、集成Spring框架、創(chuàng)建RESTful?API端點(diǎn)和測(cè)試應(yīng)用等,這將有助于開發(fā)者構(gòu)建能夠即時(shí)響應(yīng)庫(kù)存變化的系統(tǒng)2024-09-09教你怎么用java實(shí)現(xiàn)客戶端與服務(wù)器一問(wèn)一答
這篇文章主要介紹了教你怎么用java實(shí)現(xiàn)客戶端與服務(wù)器一問(wèn)一答,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Java中生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)
這篇文章主要介紹了Java中生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié),其中多線程并發(fā)的實(shí)現(xiàn)方式尤為exciting,需要的朋友可以參考下2015-11-11簡(jiǎn)單捋捋@RequestParam 和 @RequestBody的使用
這篇文章主要介紹了簡(jiǎn)單捋捋@RequestParam 和 @RequestBody的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式
在實(shí)際開發(fā)中,很多數(shù)據(jù)都是樹形結(jié)構(gòu),本文主要介紹了SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08MAC算法之消息摘要算法HmacMD5的實(shí)現(xiàn)
這篇文章主要介紹了MAC算法之消息摘要算法HmacMD5的實(shí)現(xiàn)的相關(guān)資料,這里提供實(shí)例,幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下2017-08-08