@Select("select * from emp") public List<Emp> select(); //above is in test @Test publicvoidtestMappingSelect(){ List<Emp> empList=empMapper.select(); System.out.println(empList); }
------------------------------ 实现delete from emp where id in (1,2,3); <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mappernamespace="com.itheima.mapper.EmpMapper"> <!--删除操作--> <deleteid="deleteByIds"> delete from emp where id in <foreachcollection="ids"item="id"separator=","open="("close=")"> #{id} </foreach> </delete> </mapper> ------------------------------ 实现不会出现and(单属性查询是不会出现and了 中间间隔的情况也会导致多余and的出现)或者where(select *是没有where字句的)干扰的查询 <where>只会在子元素有内容的情况下才插入where子句,而且会自动去除子句的开头的AND或OR
<selectid="list"resultType="com.itheima.pojo.Emp"> select * from emp <where> <!-- if做为where标签的子元素 --> <iftest="name != null"> and name like concat('%',#{name},'%') </if> <iftest="gender != null"> and gender = #{gender} </if> <iftest="begin != null and end != null"> and entrydate between #{begin} and #{end} </if> </where> order by update_time desc </select> ------------------------------ 实现不会有逗号干扰的update操作,用set标签替换set语句 <set>:动态的在SQL语句中插入set关键字,并会删掉额外的逗号。(用于update语句中) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mappernamespace="com.itheima.mapper.EmpMapper">
--------------------------------- <selectid="list"resultType="com.itheima.pojo.Emp"> <includerefid="commonSelect"/> <where> <iftest="name != null"> name like concat('%',#{name},'%') </if> <iftest="gender != null"> and gender = #{gender} </if> <iftest="begin != null and end != null"> and entrydate between #{begin} and #{end} </if> </where> order by update_time desc </select>