blob: 456755b52d2b7cdf38e719b3ca65c366ec85e06f [file] [log] [blame]
86133aaa3f5d2025-04-20 21:33:29 +08001<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE mapper
3PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5<mapper namespace="${packageName}.mapper.${ClassName}Mapper">
6
7 <resultMap type="${ClassName}" id="${ClassName}Result">
8#foreach ($column in $columns)
9 <result property="${column.javaField}" column="${column.columnName}" />
10#end
11 </resultMap>
12#if($table.sub)
13
14 <resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
15 <collection property="${subclassName}List" ofType="${subClassName}" column="${pkColumn.columnName}" select="select${subClassName}List" />
16 </resultMap>
17
18 <resultMap type="${subClassName}" id="${subClassName}Result">
19#foreach ($column in $subTable.columns)
20 <result property="${column.javaField}" column="${column.columnName}" />
21#end
22 </resultMap>
23#end
24
25 <sql id="select${ClassName}Vo">
26 select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName}
27 </sql>
28
29 <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
30 <include refid="select${ClassName}Vo"/>
31 <where>
32#foreach($column in $columns)
33#set($queryType=$column.queryType)
34#set($javaField=$column.javaField)
35#set($javaType=$column.javaType)
36#set($columnName=$column.columnName)
37#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
38#if($column.query)
39#if($column.queryType == "EQ")
40 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if>
41#elseif($queryType == "NE")
42 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if>
43#elseif($queryType == "GT")
44 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt; #{$javaField}</if>
45#elseif($queryType == "GTE")
46 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt;= #{$javaField}</if>
47#elseif($queryType == "LT")
48 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt; #{$javaField}</if>
49#elseif($queryType == "LTE")
50 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt;= #{$javaField}</if>
51#elseif($queryType == "LIKE")
52 <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if>
53#elseif($queryType == "BETWEEN")
54 <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
55#end
56#end
57#end
58 </where>
59 </select>
60
61 <select id="select${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${ClassName}${subClassName}Result#else${ClassName}Result#end">
62#if($table.crud || $table.tree)
63 <include refid="select${ClassName}Vo"/>
64 where ${pkColumn.columnName} = #{${pkColumn.javaField}}
65#elseif($table.sub)
66 select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end
67 from ${tableName}
68 where ${pkColumn.columnName} = #{${pkColumn.javaField}}
69#end
70 </select>
71#if($table.sub)
72
73 <select id="select${subClassName}List" resultMap="${subClassName}Result">
74 select#foreach ($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
75 from ${subTableName}
76 where ${subTableFkName} = #{${subTableFkName}}
77 </select>
78#end
79
80 <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
81 insert into ${tableName}
82 <trim prefix="(" suffix=")" suffixOverrides=",">
83#foreach($column in $columns)
84#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
85 <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName,</if>
86#end
87#end
88 </trim>
89 <trim prefix="values (" suffix=")" suffixOverrides=",">
90#foreach($column in $columns)
91#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
92 <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">#{$column.javaField},</if>
93#end
94#end
95 </trim>
96 </insert>
97
98 <update id="update${ClassName}" parameterType="${ClassName}">
99 update ${tableName}
100 <trim prefix="SET" suffixOverrides=",">
101#foreach($column in $columns)
102#if($column.columnName != $pkColumn.columnName)
103 <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if>
104#end
105#end
106 </trim>
107 where ${pkColumn.columnName} = #{${pkColumn.javaField}}
108 </update>
109
110 <delete id="delete${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}">
111 delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}}
112 </delete>
113
114 <delete id="delete${ClassName}By${pkColumn.capJavaField}s" parameterType="String">
115 delete from ${tableName} where ${pkColumn.columnName} in
116 <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
117 #{${pkColumn.javaField}}
118 </foreach>
119 </delete>
120#if($table.sub)
121
122 <delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String">
123 delete from ${subTableName} where ${subTableFkName} in
124 <foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")">
125 #{${subTableFkclassName}}
126 </foreach>
127 </delete>
128
129 <delete id="delete${subClassName}By${subTableFkClassName}" parameterType="${pkColumn.javaType}">
130 delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}}
131 </delete>
132
133 <insert id="batch${subClassName}">
134 insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values
135 <foreach item="item" index="index" collection="list" separator=",">
136 (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end)
137 </foreach>
138 </insert>
139#end
140</mapper>