easyCode模板(自用)

刺骨的言语ヽ痛彻心扉 2023-02-28 16:21 717阅读 0赞

easyCode mybatis template

文章目录

  • easyCode mybatis template
    • entity
    • dao
    • xml
    • service
    • serviceImpl
    • controller

entity

  1. ##引入宏定义
  2. $!define
  3. ##使用宏定义设置回调(保存位置与文件后缀)
  4. #save("/entity", ".java")
  5. ##使用宏定义设置包后缀
  6. #setPackageSuffix("entity")
  7. ##使用全局变量实现默认包导入
  8. $!autoImport
  9. import java.io.Serializable;
  10. ##使用宏定义实现类注释信息
  11. #tableComment("实体类")
  12. public class $!{
  13. tableInfo.name} implements Serializable {
  14. private static final long serialVersionUID = $!tool.serial();
  15. #foreach($column in $tableInfo.fullColumn)
  16. #if(${
  17. column.comment})/**
  18. * ${column.comment}
  19. */#end
  20. private $!{
  21. tool.getClsNameByFullName($column.type)} $!{
  22. column.name};
  23. #end
  24. #foreach($column in $tableInfo.fullColumn)
  25. ##使用宏定义实现get,set方法
  26. #getSetMethod($column)
  27. #end
  28. }

dao

  1. ##定义初始变量
  2. #set($tableName = $tool.append($tableInfo.name, "mapper"))
  3. ##设置回调
  4. $!callback.setFileName($tool.append($tableName, ".java"))
  5. $!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))
  6. ##拿到主键
  7. #if(!$tableInfo.pkColumn.isEmpty())
  8. #set($pk = $tableInfo.pkColumn.get(0))
  9. #end
  10. #if($tableInfo.savePackageName)package $!{
  11. tableInfo.savePackageName}.#{
  12. end}Mapper;
  13. import $!{
  14. tableInfo.savePackageName}.entity.$!{
  15. tableInfo.name};
  16. import org.apache.ibatis.annotations.Param;
  17. import java.util.List;
  18. /**
  19. * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
  20. *
  21. * @author $!author
  22. * @since $!time.currTime()
  23. */
  24. public interface $!{
  25. tableName} {
  26. /**
  27. * 通过主键查询单条数据
  28. *
  29. * @param $!pk.name 主键
  30. * @return 实例对象
  31. */
  32. $!{
  33. tableInfo.name} queryById($!pk.shortType $!pk.name);
  34. /**
  35. * 查询指定行数据
  36. *
  37. * @param offset 查询起始位置
  38. * @param limit 查询条数
  39. * @return 对象列表
  40. */
  41. List<$!{
  42. tableInfo.name}> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);
  43. /**
  44. * 新增数据
  45. *
  46. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  47. */
  48. void insert($!{
  49. tableInfo.name} $!tool.firstLowerCase($!{
  50. tableInfo.name}));
  51. /**
  52. * 修改数据
  53. *
  54. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  55. */
  56. void update($!{
  57. tableInfo.name} $!tool.firstLowerCase($!{
  58. tableInfo.name}));
  59. /**
  60. * 通过主键删除数据
  61. * @param $!pk.name 主键
  62. */
  63. void deleteById($!pk.shortType $!pk.name);
  64. /**
  65. * 查询数据条数
  66. * @return 条数
  67. */
  68. int countAll();
  69. /**
  70. * 通过主键列表删除,列表长度不能为0
  71. * @param list 集合
  72. */
  73. void deleteByIds( List<$!pk.shortType> list);
  74. /**
  75. * 通过主键修改实体列表,列表长度不能为0,注意:当实体属性为null时,对应的列也会别更新为null
  76. * @param list 集合
  77. */
  78. void updateBatch( List<$!{
  79. tableInfo.name}> list);
  80. /**
  81. * 批量新增所有列,列表长度不能为0,且列表id统一为null或者统一不为null
  82. * @param list 集合
  83. */
  84. void insertBatch( List<$!{
  85. tableInfo.name}> list);
  86. /**
  87. * 通过实体非空属性删除
  88. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实体
  89. */
  90. void deleteByEntity( $!{
  91. tableInfo.name} $!tool.firstLowerCase($!{
  92. tableInfo.name}));
  93. /**
  94. * 通过实体不为空的属性作为筛选条件查询列表
  95. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实体
  96. * @return list
  97. */
  98. List<$!{
  99. tableInfo.name}> listByEntity($!{
  100. tableInfo.name} $!tool.firstLowerCase($!{
  101. tableInfo.name}));
  102. /**
  103. * 新增实体属性不为null的列
  104. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实体
  105. */
  106. void insertSelect( $!{
  107. tableInfo.name} $!tool.firstLowerCase($!{
  108. tableInfo.name}));
  109. /**
  110. * 通过实体不为空的属性作为筛选条件查询单个
  111. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实体
  112. * @return 单个
  113. */
  114. $!{
  115. tableInfo.name} getByEntity($!{
  116. tableInfo.name} $!tool.firstLowerCase($!{
  117. tableInfo.name}));
  118. /**
  119. * 通过实体不为空的属性作为筛选条件查询单个
  120. * @param list 实体
  121. * @return 单个
  122. */
  123. List<$!{
  124. tableInfo.name}> listByIds( List<$!pk.shortType> list);
  125. }

xml

  1. ##引入mybatis支持
  2. $!mybatisSupport
  3. ##设置保存名称与保存位置
  4. $!callback.setFileName($tool.append($!{
  5. tableInfo.name}, "Mapper.xml"))
  6. $!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))
  7. ##拿到主键
  8. #if(!$tableInfo.pkColumn.isEmpty())
  9. #set($pk = $tableInfo.pkColumn.get(0))
  10. #end
  11. <?xml version="1.0" encoding="UTF-8"?>
  12. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="$!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper">
  14. <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}ResultMap">
  15. #foreach($column in $tableInfo.fullColumn)
  16. <result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
  17. #end
  18. </resultMap>
  19. <sql id="table_field">
  20. #allSqlColumn()
  21. </sql>
  22. <!--根据主键查询单个-->
  23. <select id="queryById" resultMap="$!{tableInfo.name}ResultMap">
  24. select
  25. <include refid="table_field" />
  26. from $!tableInfo.obj.name
  27. where $!pk.obj.name = #{
  28. $!pk.name}
  29. </select>
  30. <!--查询指定行数据-->
  31. <select id="queryAllByLimit" resultMap="$!{tableInfo.name}ResultMap">
  32. select
  33. <include refid="table_field" />
  34. from $!tableInfo.obj.name
  35. limit #{
  36. offset}, #{
  37. limit}
  38. </select>
  39. <!--新增所有列-->
  40. <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true">
  41. insert into $!{
  42. tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)
  43. values (#foreach($column in $tableInfo.otherColumn)#{
  44. $!{
  45. column.name}}#if($velocityHasNext), #end#end)
  46. </insert>
  47. <!--通过主键更新数据-->
  48. <update id="update">
  49. update $!{
  50. tableInfo.obj.name}
  51. <set>
  52. #foreach($column in $tableInfo.otherColumn)
  53. <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
  54. $!column.obj.name = #{
  55. $!column.name},
  56. </if>
  57. #end
  58. </set>
  59. where $!pk.obj.name = #{
  60. $!pk.name}
  61. </update>
  62. <!--通过主键物理删除-->
  63. <delete id="deleteById">
  64. delete from $!{
  65. tableInfo.obj.name} where $!pk.obj.name = #{
  66. $!pk.name}
  67. </delete>
  68. <!--查询数据条数-->
  69. <select id="countAll" resultType="int">
  70. select count($!pk.obj.name) from $!{
  71. tableInfo.obj.name}
  72. </select>
  73. <!--通过主键列表删除,列表长度不能为0-->
  74. <delete id="deleteByIds" parameterType="list">
  75. delete from $!{
  76. tableInfo.obj.name} where $!pk.obj.name in
  77. <foreach item="item" collection="list" separator="," open="(" close=")" index="index">
  78. #{
  79. item}
  80. </foreach>
  81. </delete>
  82. <!--通过主键更新实体列表,列表长度不能为0,注意:当实体属性为null时,对应的列也会别更新为null-->
  83. <update id="updateBatch" parameterType="list">
  84. update $!{
  85. tableInfo.obj.name}
  86. <trim prefix="set" suffixOverrides=",">
  87. #foreach($column in $tableInfo.otherColumn)
  88. <trim prefix="$!{column.obj.name} = case" suffix="end,">
  89. <foreach collection="list" item="item" index="index">
  90. when $!pk.obj.name = #{
  91. item.$!pk.name} then #{
  92. item.$!column.name}
  93. </foreach>
  94. </trim>
  95. #end
  96. </trim>
  97. where $!pk.obj.name in
  98. <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
  99. #{
  100. item.$!pk.name,jdbcType=$!pk.ext.jdbcType}
  101. </foreach>
  102. </update>
  103. <!--批量新增所有列,列表长度不能为0-->
  104. <insert id="insertBatch" keyProperty="$!pk.name" useGeneratedKeys="true" parameterType="list">
  105. insert into $!{
  106. tableInfo.obj.name}
  107. (#foreach($column in $tableInfo.fullColumn)$!{
  108. column.obj.name}#if($velocityHasNext), #end#end)
  109. values
  110. <foreach item="item" collection="list" separator="," open="" close="" index="index">
  111. (#foreach($column in $tableInfo.fullColumn)#{
  112. item.$!{
  113. column.name},jdbcType=$!column.ext.jdbcType}#if($velocityHasNext), #end#end)
  114. </foreach>
  115. </insert>
  116. <!--通过实体非空属性删除-->
  117. <delete id="deleteByEntity" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
  118. delete from $!{
  119. tableInfo.obj.name}
  120. <where>
  121. #foreach($column in $tableInfo.otherColumn)
  122. <if test="$!column.name != null">
  123. and $!column.obj.name = #{
  124. $!column.name,jdbcType=$!column.ext.jdbcType}
  125. </if>
  126. #end
  127. </where>
  128. </delete>
  129. <!--通过实体不为空的属性作为筛选条件查询列表-->
  130. <select id="listByEntity" resultMap="$!{tableInfo.name}ResultMap" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
  131. select
  132. <include refid="table_field" />
  133. from $!tableInfo.obj.name
  134. <where>
  135. #foreach($column in $tableInfo.fullColumn)
  136. <if test="$!column.name != null">
  137. and $!column.obj.name = #{
  138. $!column.name,jdbcType=$!column.ext.jdbcType}
  139. </if>
  140. #end
  141. </where>
  142. </select>
  143. <!--新增实体属性不为null的列-->
  144. <insert id="insertSelect" keyProperty="$!pk.name" useGeneratedKeys="true" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
  145. insert into $!{
  146. tableInfo.obj.name}
  147. <trim prefix="(" suffix=")" suffixOverrides=",">
  148. #foreach($column in $tableInfo.fullColumn)
  149. <if test="$!column.name != null">
  150. $!column.obj.name,
  151. </if>
  152. #end
  153. </trim>
  154. <trim prefix="values (" suffix=")" suffixOverrides=",">
  155. #foreach($column in $tableInfo.fullColumn)
  156. <if test="$!column.name != null">
  157. #{
  158. $!column.name,jdbcType=$!column.ext.jdbcType},
  159. </if>
  160. #end
  161. </trim>
  162. </insert>
  163. <!--通过实体不为空的属性作为筛选条件查询单个-->
  164. <select id="getByEntity" resultMap="$!{tableInfo.name}ResultMap" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
  165. select
  166. <include refid="table_field" />
  167. from $!tableInfo.obj.name
  168. <where>
  169. #foreach($column in $tableInfo.fullColumn)
  170. <if test="$!column.name != null">
  171. and $!column.obj.name = #{
  172. $!column.name,jdbcType=$!column.ext.jdbcType}
  173. </if>
  174. #end
  175. </where>
  176. limit 1
  177. </select>
  178. <!--通过Id列表作为筛选条件查询列表,列表长度不为0-->
  179. <select id="listByIds" resultMap="$!{tableInfo.name}ResultMap" parameterType="list">
  180. select
  181. <include refid="table_field" />
  182. from $!tableInfo.obj.name
  183. where $!pk.obj.name in
  184. <foreach item="item" collection="list" separator="," open="(" close=")" index="index">
  185. #{
  186. item}
  187. </foreach>
  188. </select>
  189. </mapper>

service

  1. ##定义初始变量
  2. #set($tableName = $tool.append($tableInfo.name, "Service"))
  3. ##设置回调
  4. $!callback.setFileName($tool.append($tableName, ".java"))
  5. $!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
  6. ##拿到主键
  7. #if(!$tableInfo.pkColumn.isEmpty())
  8. #set($pk = $tableInfo.pkColumn.get(0))
  9. #end
  10. #if($tableInfo.savePackageName)package $!{
  11. tableInfo.savePackageName}.#{
  12. end}service;
  13. import $!{
  14. tableInfo.savePackageName}.entity.$!{
  15. tableInfo.name};
  16. import java.util.List;
  17. /**
  18. * $!{tableInfo.comment}($!{tableInfo.name})表服务接口
  19. *
  20. * @author $!author
  21. * @since $!time.currTime()
  22. */
  23. public interface $!{
  24. tableName} {
  25. /**
  26. * 通过ID查询单条数据
  27. *
  28. * @param $!pk.name 主键
  29. * @return 实例对象
  30. */
  31. $!{
  32. tableInfo.name} queryById($!pk.shortType $!pk.name);
  33. /**
  34. * 新增数据
  35. *
  36. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  37. */
  38. void insert($!{
  39. tableInfo.name} $!tool.firstLowerCase($!{
  40. tableInfo.name}));
  41. /**
  42. * 修改数据
  43. *
  44. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  45. */
  46. void update($!{
  47. tableInfo.name} $!tool.firstLowerCase($!{
  48. tableInfo.name}));
  49. /**
  50. * 通过主键删除数据
  51. *
  52. * @param $!pk.name 主键
  53. */
  54. void deleteById($!pk.shortType $!pk.name);
  55. }

serviceImpl

  1. ##定义初始变量
  2. #set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
  3. ##设置回调
  4. $!callback.setFileName($tool.append($tableName, ".java"))
  5. $!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))
  6. ##拿到主键
  7. #if(!$tableInfo.pkColumn.isEmpty())
  8. #set($pk = $tableInfo.pkColumn.get(0))
  9. #end
  10. #if($tableInfo.savePackageName)package $!{
  11. tableInfo.savePackageName}.#{
  12. end}service.impl;
  13. import $!{
  14. tableInfo.savePackageName}.entity.$!{
  15. tableInfo.name};
  16. import $!{
  17. tableInfo.savePackageName}.mapper.$!{
  18. tableInfo.name}Mapper;
  19. import $!{
  20. tableInfo.savePackageName}.service.$!{
  21. tableInfo.name}Service;
  22. import org.springframework.stereotype.Service;
  23. import javax.annotation.Resource;
  24. import java.util.List;
  25. /**
  26. * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
  27. *
  28. * @author $!author
  29. * @since $!time.currTime()
  30. */
  31. @Service("$!tool.firstLowerCase($!{tableInfo.name})Service")
  32. public class $!{
  33. tableName} implements $!{
  34. tableInfo.name}Service {
  35. @Resource
  36. private $!{
  37. tableInfo.name}Mapper $!tool.firstLowerCase($!{
  38. tableInfo.name})Mapper;
  39. /**
  40. * 通过主键查询单条数据
  41. *
  42. * @param $!pk.name 主键
  43. * @return 实例对象
  44. */
  45. @Override
  46. public $!{
  47. tableInfo.name} queryById($!pk.shortType $!pk.name) {
  48. return this.$!{
  49. tool.firstLowerCase($!{
  50. tableInfo.name})}Mapper.queryById($!pk.name);
  51. }
  52. /**
  53. * 新增数据
  54. *
  55. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  56. * @return 实例对象
  57. */
  58. @Transactional(rollbackFor = RuntimeException.class)
  59. @Override
  60. public void insert($!{
  61. tableInfo.name} $!tool.firstLowerCase($!{
  62. tableInfo.name})) {
  63. this.$!{
  64. tool.firstLowerCase($!{
  65. tableInfo.name})}Mapper.insert($!tool.firstLowerCase($!{
  66. tableInfo.name}));
  67. }
  68. /**
  69. * 修改数据
  70. *
  71. * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
  72. * @return 实例对象
  73. */
  74. @Transactional(rollbackFor = RuntimeException.class)
  75. @Override
  76. public void update($!{
  77. tableInfo.name} $!tool.firstLowerCase($!{
  78. tableInfo.name})) {
  79. this.$!{
  80. tool.firstLowerCase($!{
  81. tableInfo.name})}Mapper.update($!tool.firstLowerCase($!{
  82. tableInfo.name}));
  83. }
  84. /**
  85. * 通过主键删除数据
  86. *
  87. * @param $!pk.name 主键
  88. */
  89. @Transactional(rollbackFor = RuntimeException.class)
  90. @Override
  91. public void deleteById($!pk.shortType $!pk.name) {
  92. this.$!{
  93. tool.firstLowerCase($!{
  94. tableInfo.name})}Mapper.deleteById($!pk.name);
  95. }
  96. }

controller

  1. ##定义初始变量
  2. #set($tableName = $tool.append($tableInfo.name, "Controller"))
  3. ##设置回调
  4. $!callback.setFileName($tool.append($tableName, ".java"))
  5. $!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
  6. ##拿到主键
  7. #if(!$tableInfo.pkColumn.isEmpty())
  8. #set($pk = $tableInfo.pkColumn.get(0))
  9. #end
  10. #if($tableInfo.savePackageName)package $!{
  11. tableInfo.savePackageName}.#{
  12. end}controller;
  13. import $!{
  14. tableInfo.savePackageName}.entity.$!{
  15. tableInfo.name};
  16. import $!{
  17. tableInfo.savePackageName}.service.$!{
  18. tableInfo.name}Service;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.annotation.Resource;
  21. /**
  22. * $!{tableInfo.comment}($!{tableInfo.name})表控制层
  23. *
  24. * @author $!author
  25. * @since $!time.currTime()
  26. */
  27. @RestController
  28. @RequestMapping("$!tool.firstLowerCase($tableInfo.name)")
  29. public class $!{
  30. tableName} {
  31. /**
  32. * 服务对象
  33. */
  34. @Resource
  35. private $!{
  36. tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;
  37. /**
  38. * 通过主键查询单条数据
  39. *
  40. * @param id 主键
  41. * @return 单条数据
  42. */
  43. @GetMapping
  44. public $!{
  45. tableInfo.name} queryById($!pk.shortType id) {
  46. return this.$!{
  47. tool.firstLowerCase($tableInfo.name)}Service.queryById(id);
  48. }
  49. }

发表评论

表情:
评论列表 (有 0 条评论,717人围观)

还没有评论,来说两句吧...

相关阅读

    相关 隐私政策模板自用

    《 XX App 隐私政策》 XX App 尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务, XX App 会按照本隐私权政策的规定使用和披露您

    相关 EasyCode逆向工程

    描述 `平时在做开发的时候,时常会根据数据表定义一些实体类,domain或者entity。如果一个一个的新建类然后在一个一个字段的添加就显得比较麻烦,可能有人这时候就想到