动态sql,减少了我们的sql标签的书写,简化我们业务层的开发
1.where if标签
当我们发送name时就会根据那么来查获数据,当传的是password的时候就根据密码来查询。
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shuai.mapper.bookDao">
<resultMap id="booklist" type="book">
<result property="my_password" column="password"></result>
</resultMap>
<select id="findAll" resultMap="booklist" parameterType="book">
select * from p
<where>
<if test="name!=null">
name=#{name}
</if>
<if test="password!=null">
password=#{password}
</if>
</where>
</select>
</mapper>
2.sql片段
当你的sql语句需要写很多的时候,可以设置sql片段,简化开发。
<sql id="sselect_user"> select * from p</sql>
<select id="findAll" resultMap="booklist" parameterType="book">
<include refid="sselect_user"></include>
3.foreach标签
可以进行批量删除的操作
@Test
public void test(){
SqlSession sqlSession= sqlSessionFactory.openSession();
bookDao bookDao= sqlSession.getMapper(bookDao.class);
List<String> list=new ArrayList<String>();
list.add("66");
list.add("22");
bookDao.deletBook(list);
}
}
<delete id="deletBook" parameterType="list">
delete from p where
<foreach collection="list" open="password in(" close=")" separator="," item="password">
#{password}
</foreach>
</delete>
网友评论