美文网首页
mybatis-动态sql

mybatis-动态sql

作者: 李霖神谷 | 来源:发表于2019-12-04 21:27 被阅读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>
    
    

    相关文章

      网友评论

          本文标题:mybatis-动态sql

          本文链接:https://www.haomeiwen.com/subject/cbcrgctx.html