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(); //一定要进行事务的提交

    插入:

    坚持
  • 相关阅读:
    哈夫曼编码-C语言实现
    KMP和BF算法-C语言实现
    Spring框架(1)--只是入门
    MyBatis(1)
    antd TreeSelect 无限级选择
    download下载文件
    react搭建项目问题
    js 数组转tree结构
    反映复制到剪贴板(npm安装)
    js前端实现Table导出excel表格
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/13044017.html
Copyright © 2011-2022 走看看