mybatis-动态sql

2019-12-04  本文已影响0人  李霖神谷

动态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>

上一篇下一篇

猜你喜欢

热点阅读