赞
踩
黑马程序员JavaWeb开发教程
XML应和文件的形成与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下
注意:使用/的方式进行创建,不能使用.的方式进行创建
XML映射文件的namespace属性为Mapper接口全限定名一致
<?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">
<mapper namespace="com.itheima.mapper.EmpMapper">
</mapper>
EmpMapper接口中的代码
public List<Emp> list(@Param("name") String name, @Param("gender") Short gender, @Param("begin") LocalDate begin, @Param("end") LocalDate end);
EmpMapper.xml 映射文件中的代码
<?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">
<mapper namespace="com.itheima.mapper.EmpMapper">
<!-- resultType:单挑记录所封装的类型-->
<select id="list" resultType="com.itheima.pojo.Emp">
select * from emp where name like concat('%',#{name},'%') and gender=#{gender} and
entrydate between #{begin} and #{end} order by update_time desc
</select>
</mapper>
<if><where>
<if>
:用于判断条件是否成立,使用test属性进行条件判断,如果条件为true,则拼接SQL<where>
:where元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句开头的and或者 or<set>
:动态的在行首插入SET关键字,并会删除掉额外的逗号(用在update语句中)<select id="list" resultType="com.itheima.pojo.Emp">
select * from emp
<where>
<if test="name!=null">
name like concat('%',#{name},'%')
</if>
<if test="gender !=null">
and gender=#{gender}
</if>
<if test="begin!=null and end!=null">
and entrydate between #{begin} and #{end}
</if>
</where>
order by update_time desc
</select>
delete from emp where id in(18,19,20);
//根据id批量删除员工
public void deleteByIds(@Param("ids") List<Integer> ids);
<!-- 根据ID量删除员工-->
<!-- collection:遍历的集合(和方法中传递的参数名一致即可)
item:遍历出来的元素
separator:分隔符
open:遍历开始前拼接的SQL片段
close:遍历节后后拼接的SQL片段
-->
<delete id="deleteByIds">
delete from emp where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
@Test
public void testDeleteByIds(){
List<Integer> ids= Arrays.asList(18,19);
empMapper.deleteByIds(ids);
}
<sql>
标签,然后在相应的地方使用<include>
标签进行引用<sql>
:定义可重用的SQL片段<include>
:通过属性refid,指定包含的sql片段<sql id="commonSql"> select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp </sql> <!-- resultType:单条记录所封装的类型--> <select id="list" resultType="com.itheima.pojo.Emp"> <include refid="commonSql"></include> <where> <if test="name!=null"> name like concat('%',#{name},'%') </if> <if test="gender !=null"> and gender=#{gender} </if> <if test="begin!=null and end!=null"> and entrydate between #{begin} and #{end} </if> </where> order by update_time desc </select>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。