mapper.xml.vm 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="${packageName}.mapper.${ClassName}Mapper">
  4. <sql id="${className}Columns">
  5. #foreach ($column in $columns)
  6. a.${column.columnName} as "${column.javaField}"#if($foreach.hasNext),
  7. #else
  8. #end
  9. #end
  10. </sql>
  11. <sql id="${className}Joins">
  12. </sql>
  13. <select id="get" resultType="${ClassName}">
  14. SELECT
  15. <include refid="${className}Columns"/>
  16. FROM ${tableName} a
  17. <include refid="${className}Joins"/>
  18. WHERE a.id = #{id}
  19. </select>
  20. <select id="findList" resultType="${ClassName}">
  21. SELECT
  22. <include refid="${className}Columns"/>
  23. FROM ${tableName} a
  24. <include refid="${className}Joins"/>
  25. <where>
  26. a.del_flag = #{DEL_FLAG_NORMAL}
  27. #foreach($column in $columns)
  28. #set($queryType=$column.queryType)
  29. #set($javaField=$column.javaField)
  30. #set($javaType=$column.javaType)
  31. #set($columnName=$column.columnName)
  32. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  33. #if($column.query || $columnName == $subTableFkName)
  34. ##非日期
  35. #if($javaType != 'Date')
  36. #if($column.queryType == "EQ")
  37. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  38. AND a.$columnName = #{$javaField}
  39. </if>
  40. #elseif($queryType == "NE")
  41. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  42. and a.$columnName != #{$javaField}
  43. </if>
  44. #elseif($queryType == "GT")
  45. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  46. and a.$columnName &gt; #{$javaField}
  47. </if>
  48. #elseif($queryType == "GTE")
  49. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  50. and a.$columnName &gt;= #{$javaField}
  51. </if>
  52. #elseif($queryType == "LT")
  53. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  54. and a.$columnName &lt; #{$javaField}
  55. </if>
  56. #elseif($queryType == "LTE")
  57. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  58. and a.$columnName &lt;= #{$javaField}
  59. </if>
  60. #elseif($queryType == "LIKE")
  61. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  62. and a.$columnName like concat('%', #{$javaField}, '%')
  63. </if>
  64. #end
  65. #else
  66. ##日期
  67. #if($column.queryType == "EQ")
  68. <if test="begin$AttrName != null and begin$AttrName != ''">
  69. AND date_format(a.$columnName,'%y%m%d') = date_format(#{begin$AttrName},'%y%m%d')
  70. </if>
  71. #elseif($queryType == "GT")
  72. <if test="begin$AttrName != null and begin$AttrName != ''">
  73. and date_format(a.$columnName,'%y%m%d') &gt; date_format(#{begin$AttrName},'%y%m%d')
  74. </if>
  75. #elseif($queryType == "GTE")
  76. <if test="begin$AttrName != null and begin$AttrName != ''">
  77. and date_format(a.$columnName,'%y%m%d') &gt;= date_format(#{begin$AttrName},'%y%m%d')
  78. </if>
  79. #elseif($queryType == "LT")
  80. <if test="end$AttrName != null and end$AttrName != ''">
  81. and date_format(a.$columnName,'%y%m%d') &lt; date_format(#{end$AttrName},'%y%m%d')
  82. </if>
  83. #elseif($queryType == "LTE")
  84. <if test="end$AttrName != null and end$AttrName != ''">
  85. and date_format(a.$columnName,'%y%m%d') &lt;= date_format(#{end$AttrName},'%y%m%d')
  86. </if>
  87. #elseif($queryType == "BETWEEN")
  88. <if test="begin$AttrName != null and begin$AttrName != ''">
  89. and date_format(a.$columnName,'%y%m%d') &gt;= date_format(#{begin$AttrName},'%y%m%d')
  90. </if>
  91. <if test="end$AttrName != null and end$AttrName != ''">
  92. and date_format(a.$columnName,'%y%m%d') &lt;= date_format(#{end$AttrName},'%y%m%d')
  93. </if>
  94. #end
  95. #end
  96. #end
  97. #end
  98. </where>
  99. <choose>
  100. <when test="page !=null and page.orderBy != null and page.orderBy != ''">
  101. ORDER BY ${page.orderBy}
  102. </when>
  103. <otherwise>
  104. #foreach($column in $columns)
  105. #if($column.columnName == "sort")
  106. ORDER BY a.sort
  107. #break
  108. #end
  109. #if($velocityCount == $columns.size())
  110. ORDER BY a.update_time desc
  111. #break
  112. #end
  113. #end
  114. </otherwise>
  115. </choose>
  116. </select>
  117. <select id="findListWithUnique" resultType="${ClassName}">
  118. SELECT
  119. a.id
  120. FROM ${tableName} a
  121. <include refid="${className}Joins"/>
  122. <where>
  123. a.del_flag = #{DEL_FLAG_NORMAL}
  124. <if test="notEqualId != null and notEqualId != ''">
  125. AND id != #{notEqualId}
  126. </if>
  127. #foreach($column in $columns)
  128. #set($javaField=$column.javaField)
  129. #set($javaType=$column.javaType)
  130. #set($columnName=$column.columnName)
  131. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  132. #if($column.isUnique == "1")
  133. <if test="$javaField != null #if($javaType == 'String' )and $javaField.trim() != ''#end">
  134. and $columnName = #{$javaField}
  135. </if>
  136. #end
  137. #end
  138. </where>
  139. </select>
  140. ##根据排序字段计算最大排序号
  141. #foreach($column in $columns)
  142. #if($column.columnName == "sort")
  143. <select id="findMaxSort" resultType="integer">
  144. SELECT
  145. max(a.sort)
  146. FROM ${tableName} a
  147. WHERE a.del_flag = #{DEL_FLAG_NORMAL}
  148. </select>
  149. #break
  150. #end
  151. #end
  152. <insert id="insert">
  153. INSERT INTO ${tableName}(
  154. #foreach($column in $columns)
  155. $column.columnName#if($foreach.hasNext),
  156. #end
  157. #end
  158. ) VALUES (
  159. #foreach($column in $columns)
  160. #{$column.javaField}#if($foreach.hasNext),
  161. #end
  162. #end
  163. )
  164. </insert>
  165. <update id="update">
  166. UPDATE ${tableName} SET
  167. #foreach($column in $columns)
  168. #if($column.javaField != "id" && $column.javaField != "createBy" && $column.javaField != "createDept" && $column.javaField != "createTime" && $column.javaField != "id" && $column.javaField != "version" && $column.javaField != "delFlag")
  169. $column.columnName = #{$column.javaField},
  170. #end
  171. #end
  172. version = version + 1
  173. WHERE id = #{id} and version = #{version}
  174. </update>
  175. <update id="updateStatus">
  176. UPDATE ${tableName} SET
  177. status = #{status},
  178. version = version + 1
  179. WHERE id = #{id}
  180. </update>
  181. <update id="delete">
  182. UPDATE ${tableName} SET
  183. del_flag = #{DEL_FLAG_DELETE}
  184. WHERE id = #{id}
  185. </update>
  186. <delete id="delete${ClassName}ByIds">
  187. UPDATE ${tableName} SET
  188. del_flag = #{DEL_FLAG_DELETE}
  189. WHERE id in
  190. <foreach item="id" collection="ids" open="(" separator="," close=")">
  191. #{id}
  192. </foreach>
  193. </delete>
  194. </mapper>