<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="wpj.dao.IUserDao"><!--
用于对象关系映射
id 唯一标识 type 实体类(已起别名)
--><resultMapid="userResultMap"type="user"><!-- 主键 --><idcolumn="id"property="id"/><!-- 字段 --><resultcolumn="name"property="name"/><resultcolumn="age"property="age"/></resultMap><selectid="selectAllUser"resultMap="userResultMap">
select * from user
</select></mapper>
<!--
<if>:可以做非空判断
<where>:动态控制where关键字,可以删除多余的and关键字
--><selectid="selectAllUser"resultMap="userResultMap">
select * from user_crud
<where><iftest="username != null and username != ''">
name like concat("%",#{username},"%")
</if><iftest="password != null and password !=''">
and password = #{password}
</if><iftest="age != null">
and age = #{age}
</if></where></select><!--
set:动态的添加set关键字,去掉多余的逗号
--><updateid="updateUser">
update user_crud
<set><iftest="name!= null and name!=''">
NAME = #{name},
</if><iftest="age != null">
age = #{age},
</if></set><where>
id= #{id}
</where></update><!--
trim:比较灵活
1)前缀
2)后缀
3)前缀覆盖
4)后缀覆盖
--><updateid="updateUser2">
update user_crud
<trimprefix="set"suffixOverrides=","><iftest="name!= null and name!=''">
NAME = #{name},
</if><iftest="age != null">
age = #{age},
</if></trim><where>
id= #{id}
</where></update><!--
MyBatis已经把常用的一些bean帮我们注册别名了
list list
set set
map map
数组 array
collection:被遍历的集合
open:开始遍历的时候执行,只调用一次
close:结束遍历的时候调用,只地调用一次
item:当前遍历的对象(类似的var)
index:当前遍历的索引
separator:每循环一次都执行,最后一次不执行
--><deleteid="batchDel">
delete from user_crud where id in
<foreachcollection="list"open="("close=")"item="id"index="index"separator=",">
#{id}
</foreach></delete><selectid="findUser2"resultMap="userResultMap1">
select
<includerefid="base_user"/>
from user_crud
<where><choose><whentest="name != null and name != ''">
name like concat("%",#{name },"%");
</when><otherwise>
name is not null
</otherwise></choose></where></select>