zoukankan      html  css  js  c++  java
  • Mybatis中的动态查询

    1:当传入的参数为 对象类型时 的动态语句

    查询:

    <?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.cn.entity.User.mybatisUserMapper2" >
    
    
         <!--  动态查询   当if条件成立是就按照条件查询,不成立时就查询所有 -->
        <select id="find" resultType="user" parameterType="user">
            select * from user
            <where>
              <if test="id !='' and username !=null">
                  and id = #{id} and username = #{username}
              </if>
            </where>
        </select>
    
    </mapper>

    测试:

    SqlSession sqlSession = MyBatisUtil.getSqlSession();
    User u = new User();
    u.setId(2);
    u.setAddress("湖南");
    u.setBirthday(new Date());
    u.setSex("女");
    u.setUsername("rose");
    List<User> list1 = sqlSession.selectList("com.cn.entity.User.mybatisUserMapper2.find", u);

    2:当传入的参数为 Map 的动态语句

    查询:

    测试:

    更新:

    3:当传入的参数为 List/ 数组 的动态语句

    删除:

        <!-- 动态删除 传入的参数为list 或者 数组   -->
        <delete id="del" parameterType="list">
            delete  from user where id in
    
            <!--collection="list"  这个list 是指的list类型 不是写参数的名字 一定要注意  如果是数组的话就写成collection="arry"-->
            <foreach collection="list" item="ids" close=")" open="(" separator=",">
                ${ids}  <!--${}进行取值  或者 #{} 取值-->
            </foreach>
    
        </delete>

    测试:

           List  list2 = new ArrayList<>();
           list2.add(1);
           list2.add(2);
           sqlSession.delete("com.cn.entity.User.mybatisUserMapper2.del", list2);
           sqlSession.commit(); //一定要进行事务的提交

    插入:

    坚持
  • 相关阅读:
    Uboot命令使用
    git删除某次提交
    chrome随意改变主题
    C++11——处理日期和时间的chrono库
    C++11——多线程异步操作
    C++11——原子变量
    C++11——C++线程同步之条件变量
    C++11——C++线程同步之互斥锁
    C++11——call_once
    C++11——命名空间
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/13044017.html
Copyright © 2011-2022 走看看