`

mybatis3学习笔记(五)之高级查询

阅读更多
1.修改StudentMapper.xml文件,增加动态sql语句映射
<!-- 动态sql -->
 <select id="dymSelectStudent"  resultMap="studentResultMap">
  select * from student
  <where>
   <!-- 模糊查询 -->
   <!-- mysql -->
   <if test="name != null">
    and stu_name like   concat('%',#{name},'%') 
   </if>
   <!-- sqlserver 
   <if test="name != null">
    and stu_name like   '%'+#{name}+'%'
   </if>
   -->
   <!-- oracle
   <if test="name != null">
    and stu_name like   '%'||#{name}||'%'
   </if>
    -->
   <choose>
    <when test="code=='001'">
     and stu_code = '001'
    </when>
    <when test="code=='002'">
     and stu_code = '002'
    </when>
    <otherwise>
     and stu_code = #{code}
    </otherwise>
   </choose>
   
   <if test="list!=null">
   and id in 
   <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
    #{item}
   </foreach>
   </if>
    order by ${orderName}
  </where>
 </select>
2.增加测试用例
@Test
 public void dymSelectStudentTest(){
  SqlSession session = sessionFactory.openSession();
  try{
   HashMap<String,Object> map = new HashMap<String, Object>();
   List<Long> ids = new ArrayList<Long>();
   ids.add(9L);
   ids.add(10L);
   map.put("code", "005");
   map.put("name", "hel");
   map.put("list", ids);
   map.put("orderName", "id");
   List<Student> studentList =  (List<Student>)session.selectList("com.mybatis.mapper.StudentMapper.dymSelectStudent", map);
   for(Student s : studentList)
    System.out.println("name:"+s.getName());
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   session.close();
  }
 }
 

分享到:
评论

相关推荐

    MyBatis3学习笔记.pdf

    【MyBatis3学习笔记】 MyBatis是一个优秀的Java持久层框架,它的主要目标是简化数据库操作,将复杂的JDBC代码和手动设置参数与获取结果集的过程自动化。MyBatis的核心理念是将Java方法与SQL语句绑定,使得开发者...

    mybatis学习笔记

    MyBatis 学习笔记 MyBatis 是一个流行的 SQL 映射框架,能够自定义 SQL、存储过程和高级映射的持久层框架。在本文中,我们将从基本概念开始,逐步深入讲解 MyBatis 的使用和配置。 MyBatis 概念 MyBatis 是一个...

    【狂神说】mybatis学习总结笔记(全)PDF格式文档 MyBatis.pdf

    MyBatis学习总结笔记 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始...

    MyBatis学习笔记.zip

    在这些MyBatis学习笔记中,我们可以期待涵盖以下几个关键知识点: 1. **MyBatis简介**:首先会介绍MyBatis的起源、目标和优点,例如简化数据库操作、提高开发效率、易于维护等。 2. **环境搭建**:包括如何下载...

    传智播客Springmvc+mybatis由浅入深学习笔记

    《传智播客Springmvc+mybatis由浅入深学习笔记》是一套全面解析Springmvc和Mybatis两大主流Java框架的教程,旨在帮助初学者和进阶者深入理解这两个技术的核心概念和应用。该资源包括了四部分课堂笔记,分别是...

    MyBatis学习笔记

    MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...

    Mybatis学习笔记

    本学习笔记是作者在大学期间深入学习Mybatis后的整理,旨在帮助初学者快速入门并掌握其核心概念与功能。 笔记共分为11个章节,涵盖Mybatis的基础到高级应用,以下是主要知识点的详细讲解: 1. **Mybatis简介**:...

    mybatis简单学习笔记

    总的来说,MyBatis 的简单学习笔记涵盖了基础的 SqlSession 使用、Mapper 接口的代理对象获取、配置文件的结构和配置选项等内容,这些都是理解和使用 MyBatis 必须掌握的基础知识。通过深入理解这些概念,你可以更...

    Mybatis学习笔记+学习源码.zip

    在本学习资源中,你将找到一份详尽的Mybatis学习笔记和源码,这将极大地助力你的学习过程,尤其是对自学者而言。这份笔记被认为是非常有价值且深入的,作者在其中倾注了大量的精力,确保了内容的全面性和实用性。 ...

    马士兵 mybatis学习笔记

    马士兵老师的MyBatis学习笔记主要涵盖了以下几个核心知识点: 1. **MyBatis安装与环境搭建**:首先,你需要配置Java开发环境,并了解Maven或Gradle构建工具,因为MyBatis通常与这些工具结合使用来管理依赖。然后,...

    mybatis笔记.zip

    这些知识点只是MyBatis学习笔记中的一部分,完整的笔记可能会包含更多细节,如MyBatis的插件机制、日志配置、以及高级特性等内容。通过 Typora 的Markdown格式和图片辅助,学习者可以更直观地理解和掌握这些概念。

    mybatis学习笔记LBY.pdf

    ### Mybatis学习笔记知识点 #### 1. Mybatis 相关概念 ##### 1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架,它支持普通的 SQL 查询、存储过程以及高级映射等功能。该框架简化了 JDBC 的使用,允许开发者以...

    mybatis_maven学习笔记

    【mybatis_maven学习笔记】 在Java开发领域,MyBatis和Maven是两个不可或缺的工具,它们分别在数据访问层和项目构建方面扮演着重要角色。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...

Global site tag (gtag.js) - Google Analytics