语法参考
<!--字段转换指定类型-->
<sql>
user_name = #{userName,jdbcType=VARCHAR}
</sql>
<!--返回类型为内部类-->
<resultMap id="InnerOrgRepVO" type="xxx.UserRepVO$InnerOrgRepVO">
<result column="org_code" property="orgCode"/>
<result column="org_name" property="orgName"/>
</resultMap>
<!--listOrgByUserCode为另一个sql,即子查询方法-->
<resultMap id="UserRepVO" type="xxx.UserRepVO">
<result column="id" property="id"/>
<result column="user_code" property="userCode"/>
<collection property="orgList" column="{userCode = user_code}" select="listOrgByUserCode"></collection>
</resultMap>
<!--固定2层树状查询-->
<resultMap id="treeMap" type="TreeNode">
<result column="value" property="value" />
<result column="label" property="label"/>
<collection property="children" ofType="TreeNode">
<result column="value" property="value" />
<result column="label" property="label"/>
</collection>
</resultMap>
<!--任意层树状查询 begin -->
<resultMap id="treeNodeMap" type="TreeNode">
<result column="value" property="value" />
<result column="label" property="label"/>
<collection property="children" ofType="TreeNode"
column="{parentValue= value}" select="listOrgByParentValue"
/>
</resultMap>
<select id="listOrgByParentValue" resultMap="treeNodeMap">
select value as value,
label as label
from tree
where parent_value = #{parentValue}
</select>
<!--任意层树状查询 end -->
<!--批量操作-->
<update id="batchUpdate" parameterType="com.learn.UserInfo">
UPDATE product_info
<set>
<if test='null != userName'>
user_name= #{userName},
</if>
</set>
<where>
and id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</where>
</update>