成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

idea的easyCode的 MybatisPlus模板的配置詳解

瀏覽:107日期:2024-08-14 16:09:45

EasyCode 插件

EasyCode 插件 是一款根據(jù)表結(jié)構(gòu)生成代碼的很方便的Idea插件, 強烈推薦. 并且可以自定義模板來控制生成的類 我在使用的過程中發(fā)現(xiàn)一些問題,現(xiàn)在把解決辦法記錄下來, 我主要使用的是插件自帶的mybatisplus模板

1. 生成的代碼中有大量的get set方法

lombok 插件是個好東西, 我刪除了模板中的get和set方法, 添加了lombok 的注解, ’

2. 如果數(shù)據(jù)庫中的表都有前綴't_' 導致生成的類名中都有一個前綴 “T”

這個問題困擾我很久,改了各種模板 , 最后發(fā)現(xiàn)把init文件的第一行代碼復制到define文件的第一行就可以, init文件根本就沒有用.

3, 生成的類中沒有DTO對象

直接把entity模板文件復制一份改改就有了

下面分享下我修改后的模板

Template Setting 配置項 Group Name : MybatisPlus

如果沒有MybatisPlus 的group name, 可以新增一個

dto文件

##導入宏定義$!define##保存文件(宏定義)#save('/dto', 'DTO.java')##包路徑(宏定義)#setPackageSuffix('dto')##自動導入包(全局變量)$!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('表實體類')@Data@SuppressWarnings('serial')public class $!{tableInfo.name}DTO implements Serializable { #foreach($column in $tableInfo.fullColumn) #if(${column.comment})/**${column.comment}*/#end private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end###foreach($column in $tableInfo.fullColumn)## #getSetMethod($column)###end###foreach($column in $tableInfo.pkColumn)## /**## * 獲取主鍵值## *## * @return 主鍵值## */## @Override## protected Serializable pkVal() {## return this.$!column.name;## }## #break###end}

controller 文件

##導入宏定義$!define##設(shè)置表后綴(宏定義)#setTableSuffix('Controller')##保存文件(宏定義)#save('/controller', 'Controller.java')##包路徑(宏定義)#setPackageSuffix('controller')##定義服務(wù)名#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), 'Service'))##定義實體對象名#set($entityName = $!tool.firstLowerCase($!tableInfo.name))import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.extension.api.ApiController;import com.baomidou.mybatisplus.extension.api.R;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;import java.io.Serializable;import java.util.List;##表注釋(宏定義)#tableComment('表控制層')@RestController@RequestMapping('$!tool.firstLowerCase($!tableInfo.name)')public class $!{tableName} extends ApiController { /** * 服務(wù)對象 */ @Resource private $!{tableInfo.name}Service $!{serviceName}; /** * 分頁查詢所有數(shù)據(jù) * * @param page 分頁對象 * @param $!entityName 查詢實體 * @return 所有數(shù)據(jù) */ @GetMapping public R selectAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) { return success(this.$!{serviceName}.page(page, new QueryWrapper<>($!entityName))); } /** * 通過主鍵查詢單條數(shù)據(jù) * * @param id 主鍵 * @return 單條數(shù)據(jù) */ @GetMapping('{id}') public R selectOne(@PathVariable Serializable id) { return success(this.$!{serviceName}.getById(id)); } /** * 新增數(shù)據(jù) * * @param $!entityName 實體對象 * @return 新增結(jié)果 */ @PostMapping public R insert(@RequestBody $!tableInfo.name $!entityName) { return success(this.$!{serviceName}.save($!entityName)); } /** * 修改數(shù)據(jù) * * @param $!entityName 實體對象 * @return 修改結(jié)果 */ @PutMapping public R update(@RequestBody $!tableInfo.name $!entityName) { return success(this.$!{serviceName}.updateById($!entityName)); } /** * 刪除數(shù)據(jù) * * @param idList 主鍵結(jié)合 * @return 刪除結(jié)果 */ @DeleteMapping public R delete(@RequestParam('idList') List<Long> idList) { return success(this.$!{serviceName}.removeByIds(idList)); }}

serviceImpl 文件

##導入宏定義$!define##設(shè)置表后綴(宏定義)#setTableSuffix('ServiceImpl')##保存文件(宏定義)#save('/service/impl', 'ServiceImpl.java')##包路徑(宏定義)#setPackageSuffix('service.impl')import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;import org.springframework.stereotype.Service;##表注釋(宏定義)#tableComment('表服務(wù)實現(xiàn)類')@Service('$!tool.firstLowerCase($tableInfo.name)Service')public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Dao, $!{tableInfo.name}> implements $!{tableInfo.name}Service {}

service文件

##導入宏定義$!define##設(shè)置表后綴(宏定義)#setTableSuffix('Service')##保存文件(宏定義)#save('/service', 'Service.java')##包路徑(宏定義)#setPackageSuffix('service')import com.baomidou.mybatisplus.extension.service.IService;import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;##表注釋(宏定義)#tableComment('表服務(wù)接口')public interface $!{tableName} extends IService<$!tableInfo.name> {}

dao文件

##導入宏定義$!define##設(shè)置表后綴(宏定義)#setTableSuffix('Dao')##保存文件(宏定義)#save('/dao', 'Dao.java')##包路徑(宏定義)#setPackageSuffix('dao')import com.baomidou.mybatisplus.core.mapper.BaseMapper;import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;##表注釋(宏定義)#tableComment('表數(shù)據(jù)庫訪問層')public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {}

entity 文件

##導入宏定義$!define##保存文件(宏定義)#save('/entity', '.java')##包路徑(宏定義)#setPackageSuffix('entity')##自動導入包(全局變量)$!autoImportimport 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('表實體類')@Data@SuppressWarnings('serial')public class $!{tableInfo.name} extends Model<$!{tableInfo.name}> { @TableId(type = IdType.AUTO)#foreach($column in $tableInfo.fullColumn) #if(${column.comment})/**${column.comment}*/#end private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end###foreach($column in $tableInfo.fullColumn)## #getSetMethod($column)###end#foreach($column in $tableInfo.pkColumn) /** * 獲取主鍵值 * * @return 主鍵值 */ @Override protected Serializable pkVal() { return this.$!column.name; } #break#end}

Global Config 配置項 Group Name : Default

下面的文件都是Group Name 為 Default 的

mybatisSupport 文件

##針對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='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 autoImport 文件##自動導入包(僅導入實體屬性需要的包,通常用于實體類)#foreach($import in $importList)import $!import;#end

define 文件

##(Velocity宏定義)## 去掉表的t_前綴$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.replaceFirst('t_','')))##定義設(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##定義直接保存路徑與文件名簡化的宏定義,調(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)/** * $!{tableInfo.comment}($!{tableInfo.name})$desc * * @author $!author * @since $!time.currTime() */#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}) { this.$!{column.name} = $!{column.name}; }#end

init 文件

##初始化區(qū)域##去掉表的t_前綴$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.replaceFirst('t_','')))##參考阿里巴巴開發(fā)手冊,POJO 類中布爾類型的變量,都不要加 is 前綴,否則部分框架解析會引起序列化錯誤#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##實現(xiàn)動態(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)用時使用$tool.call來消除返回值 $tool.call($newList.add($column)) #end #end##重新保存 $tableInfo.setFullColumn($newList)#end##對importList進行篡改#set($temp = $tool.newHashSet())#foreach($column in $tableInfo.fullColumn) #if(!$column.type.startsWith('java.lang.')) ##帶有反回值的方法調(diào)用時使用$tool.call來消除返回值 $tool.call($temp.add($column.type)) #end#end##覆蓋#set($importList = $temp)

到此這篇關(guān)于idea的easyCode的 MybatisPlus模板的配置詳解的文章就介紹到這了,更多相關(guān)idea easyCode MybatisPlus配置內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: IDEA
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩不卡在线| 欧美亚洲一级| 26uuu精品一区二区三区四区在线| 国产欧美精品日韩区二区麻豆天美 | 亚洲欧美日韩成人高清在线一区| 国产精品三级久久久久三级| 午夜久久资源| 日韩欧美一区二区三区在线| 亚洲国产精品国自产拍av| 色婷婷精品大视频在线蜜桃视频| 欧美一区二区性放荡片| 久久精品72免费观看| 欧美一区二区三区小说| 日韩三级av在线播放| 国产一区二区按摩在线观看| 久久婷婷av| **性色生活片久久毛片| 欧美色老头old∨ideo| 国产精品毛片无遮挡高清| 91香蕉视频在线| 美脚の诱脚舐め脚责91| 老司机免费视频一区二区三区| 日本道在线观看一区二区| 伊人激情综合| 成人永久免费视频| 亚洲少妇在线| 夜夜操天天操亚洲| 欧美一级播放| 国产欧美一区视频| 欧美日韩1080p| 蓝色福利精品导航| 国产成人免费视频| 91精品国产一区二区| 91免费版pro下载短视频| 老司机一区二区三区| 成人一道本在线| 色综合天天综合给合国产| 欧美成人一区二区三区片免费 | 精品一区二区久久久| 一本一道久久a久久精品综合蜜臀| 国产一区美女| 精品久久一区二区| 亚洲一区二区毛片| 狠狠v欧美v日韩v亚洲ⅴ| av一区二区久久| 成人av网在线| 日韩一卡二卡三卡四卡| 国产一区二区精品在线观看| 亚洲午夜在线观看视频在线| 国产夫妻精品视频| 成人免费视频在线观看| 亚洲一区bb| 亚洲综合免费观看高清在线观看| 亚洲日韩成人| 亚洲毛片av| 亚洲午夜在线电影| 日韩精品一区二区三区在线 | 水野朝阳av一区二区三区| 久久久久久电影| 午夜欧美精品久久久久久久| 日韩中文字幕1| 精品制服美女久久| 欧美日韩一区二区欧美激情| 狠狠综合久久| 亚洲另类视频| 精品久久国产老人久久综合| 国产主播精品| 欧美激情亚洲| 国产亚洲人成网站| 精品sm捆绑视频| 欧美喷潮久久久xxxxx| 国产a久久麻豆| 国产成人精品免费| 久久这里只有精品视频网| 蜜桃视频第一区免费观看| 在线观看精品一区| 在线播放亚洲| 欧美三区在线视频| 国语对白精品一区二区| 精品无人码麻豆乱码1区2区 | 红桃视频国产一区| 女人天堂亚洲aⅴ在线观看| 日韩美一区二区三区| 午夜一区二区三区在线观看| 亚洲欧美在线aaa| 黄色成人在线网站| 久久久噜噜噜久久狠狠50岁| 欧美日韩18| 亚洲国产视频一区| 国产精品盗摄一区二区三区| 国产欧美日韩在线| 噜噜噜在线观看免费视频日韩| 欧美激情艳妇裸体舞| 久久精品一区四区| 在线亚洲欧美| 91久久一区二区| 老司机精品福利视频| 午夜电影网一区| 午夜久久久影院| 暴力调教一区二区三区| 久久精品亚洲麻豆av一区二区 | 韩日成人av| 亚洲高清久久久| 夜夜精品视频一区二区| 美国毛片一区二区| 在线观看不卡视频| 欧美精品欧美精品系列| 国产精品蜜臀在线观看| 美女被久久久| 在线免费观看日本一区| 一区二区在线观看免费视频播放| 欧美日韩精品久久久| 色天天综合色天天久久| 亚洲宅男天堂在线观看无病毒| 国产欧美一区二区精品忘忧草 | 激情文学综合丁香| 欧美成人艳星乳罩| 久久久夜色精品亚洲| 国产另类ts人妖一区二区| 亚洲一区二区精品久久av| 午夜精品久久久久久久99水蜜桃| 久久综合九色综合网站| 欧美精品激情| 亚洲成人自拍视频| 一区二区在线看| 一色屋精品亚洲香蕉网站| 欧美日韩黄色一区二区| 风间由美一区二区三区在线观看 | 亚洲一区二区四区蜜桃| 色先锋aa成人| 国产亚洲精品久| 日韩手机在线导航| 亚洲一区二区三区四区的| 欧美日韩伊人| 成人h动漫精品| 国产亚洲成人一区| 免费成人小视频| 国产精品一区二区久久精品爱涩 | 亚洲国产合集| 99av国产精品欲麻豆| 久久中文精品| 成人天堂资源www在线| 亚洲作爱视频| 亚洲欧美一区在线| 日韩欧美中文字幕制服| 国产成a人亚洲精品| 亚洲成人自拍网| 91亚洲精华国产精华精华液| 中文字幕免费观看一区| 亚洲免费观看高清完整版在线观看熊| 欧美—级在线免费片| 在线观看免费一区| 极品少妇xxxx精品少妇偷拍| 欧美久久视频| 亚洲欧美电影在线观看| 欧美日韩在线三区| 色综合久久综合网| 日本韩国欧美一区| 欧美在线播放高清精品| 久久se这里有精品| 欧美成人猛片aaaaaaa| 中文字幕在线免费不卡| 亚洲男同性恋视频| 日韩一区精品视频| 欧美精品aa| 亚洲婷婷在线视频| 欧美日韩免费观看一区=区三区| 国产九色sp调教91| 免费亚洲一区| 成人va在线观看| 国产亚洲精品久久飘花| 国产日韩欧美不卡在线| 成人av免费在线播放| 一区二区三区四区五区在线 | 69精品人人人人| 中文字幕精品一区| 黄页网站大全一区二区| 精品1区2区在线观看| 日本怡春院一区二区| 激情视频一区二区三区| 成人久久视频在线观看| 国产精品无遮挡| 青椒成人免费视频| 在线欧美一区二区| 亚洲一区二三| 一区二区三区在线观看网站| 国模冰冰炮一区二区| 中文字幕一区不卡| 久久精品亚洲| 欧美高清一级片在线观看| 国内不卡一区二区三区| 美日韩一级片在线观看| 色综合久久久久综合99| 中文字幕欧美激情一区| 91在线精品一区二区| 精品欧美一区二区久久| 一区二区三区在线免费| 欧美另类综合| 久久国产成人午夜av影院| 欧美日韩一二三区|