欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IDEA插件EasyCode及MyBatis最優(yōu)配置步驟詳解

 更新時(shí)間:2020年12月10日 14:47:42   作者:混〔IT〕的小學(xué)生  
這篇文章主要介紹了IDEA插件EasyCode MyBatis最優(yōu)配置步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

具體安裝步驟,不再贅述,僅附上個(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é))

    這篇文章主要介紹了使用Spring Framework 時(shí)常犯的十大錯(cuò)誤(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Bean?Searcher配合SpringBoot的使用詳解

    Bean?Searcher配合SpringBoot的使用詳解

    這篇文章主要介紹了Bean?Searcher配合SpringBoot的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Java異常處理UncaughtExceptionHandler使用實(shí)例代碼詳解

    Java異常處理UncaughtExceptionHandler使用實(shí)例代碼詳解

    當(dāng)一個(gè)線程由于未捕獲異常即將終止時(shí),Java虛擬機(jī)將使用thread . getuncaughtexceptionhandler()查詢線程的uncaughtException處理程序,并調(diào)用處理程序的uncaughtException方法,將線程和異常作為參數(shù)傳遞
    2023-03-03
  • Spring?Boot?使用觀察者模式實(shí)現(xiàn)實(shí)時(shí)庫(kù)存管理的步驟

    Spring?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)一答

    這篇文章主要介紹了教你怎么用java實(shí)現(xiàn)客戶端與服務(wù)器一問(wèn)一答,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java中生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)

    Java中生成隨機(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的使用

    這篇文章主要介紹了簡(jiǎn)單捋捋@RequestParam 和 @RequestBody的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式

    SpringBoot?+?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-08
  • Java 導(dǎo)出excel進(jìn)行換行的案例

    Java 導(dǎo)出excel進(jìn)行換行的案例

    這篇文章主要介紹了Java 導(dǎo)出excel進(jìn)行換行的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • MAC算法之消息摘要算法HmacMD5的實(shí)現(xiàn)

    MAC算法之消息摘要算法HmacMD5的實(shí)現(xiàn)

    這篇文章主要介紹了MAC算法之消息摘要算法HmacMD5的實(shí)現(xiàn)的相關(guān)資料,這里提供實(shí)例,幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下
    2017-08-08

最新評(píng)論