• 单个参数查询
           在mapper.xml配置文件中配置       
           <select id= "selectByNu" parameterType ="java.lang.String"
           resultMap="BaseResultMap" >
          select
           <include refid= "Base_Column_List" />
          from consume_number
          where consume = #{consume,jdbcType=VARCHAR}
     </select >
      在接口方法中
               ConsumeNumber selectByNu(String consume);




  • 直接传递多参数 查询
在mapper.xml配置文件中配置  ,其中传递参数在mybatis的配置文件中可以直接使用角标来获取

<select id= "selectByUserNameAndPwd" resultMap="BaseResultMap" >

select

<include refid= "Base_Column_List" />

from member_manager

WHERE

username = #{0}

AND

password = #{1}

</select>

在dao中代码

MemberManager selectByUserNameAndPwd(String username ,String password); 
如果想要在在mybatis中#{}中不使用角标获取也可以是在传递的时候在参数上加上注解这样的话就可以在mapper.xml中直接添加使用名字
在xml配置文件中
  1. <select id="selectTeacher"  resultType="com.myapp.domain.Teacher">
  2. select * from Teacher where c_id=#{id} and sex=#{sex}
  3. </select>
在接口方法中
public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);

  • 使用query对象封装查询
         在mapper.xml配置文件中配置
           <!-- 自定义sql -->
     <select id="selectByQuery" parameterType="com.laiwifi.query.FollowerQuery"
           resultMap="BaseResultMap" >
          select
           <include refid= "Base_Column_List" />
          from pgy_follower
          where 1=1
           <if test= "openid != null and openid != '' " >
              and openid = #{openid ,jdbcType=VARCHAR}
           </if>
           <if test= "next != null and next != '' " >
              and next = #{next,jdbcType=VARCHAR}
           </if>
           <if test= "pre != null and pre != '' " >
              and pre = #{pre ,jdbcType=VARCHAR}
           </if>
     </select >
      在接口方法中
          PgyFollower selectByQuery(FollowerQuery query);
          封装的对象
          public class FollowerQuery {
     private String openid;
     private String next;
     private String pre;
     public String getOpenid() {
           return openid ;
     }
 
     public void setOpenid(String openid ) {
           this.openid = openid ;
     }
 
     public String getNext() {
           return next ;
     }
 
     public void setNext(String next ) {
           this.next = next ;
     }
 
     public String getPre() {
           return pre ;
     }
 
     public void setPre(String pre ) {
           this.pre = pre ;
     }
}

  • Map封装多参数
     在mapper.xml中
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
select 字段... from XXX where id=#{xxId} code = #{xxCode} 
</select>
其中hashmap是mybaits默认存在的,可直接使用。map中key的名字是在#{}中使用的
在接口方法中

public list<XXBean> getXXXBeanList(HashMap map);


  • list封装参数
     在mapper.xml中配置     
<select id="getXXXBeanList" resultType="XXBean">

select 字段... from XXX where id in

<foreach item="item" index="index" collection="list"

open="(" separator="," close=")">

#{item}

</foreach>

</select>
foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')

在接口方法中

public List<XXBean> getXXBeanList(list(String) list);

mybatis参数查询的更多相关文章

  1. 8.mybatis动态SQL模糊查询 (多参数查询,使用parameterType)

    多参数查询,使用parameterType.实例: 用户User[id, name, age] 1.mysql建表并插入数据 2.Java实体类 public class User { public ...

  2. 【转载】Mybatis多参数查询映射

    转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...

  3. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  4. MyBatis参数条件查询传入的值为0时的判断

    MyBatis条件查询对字段判断是否为空一般为: <if test="testValue!=null and testValue != ''"> and test_va ...

  5. mybatis中参数为list集合时使用 mybatis in查询

    mybatis中参数为list集合时使用 mybatis in查询 一.问题描述mybatis sql查询时,若遇到多个条件匹配一个字段,sql 如: select * from user where ...

  6. coding++:mybatis 嵌套查询子查询column传多个参数描述

    mybatis 嵌套查询子查询column传多个参数如下: 2.代码示例 备注:注意,相同颜色的单词都是有关联的 <resultMap id="blogResult" typ ...

  7. MyBatis参数绑定规则及原理分析

    MyBatis参数的传递有几种不同的方法,本文通过测试用例出发,对其中的方式进行总结和说明,并对其部分源码进行分析. 一.测试用例(环境参考之前博客SSM接口编程一文 http://www.cnblo ...

  8. myBatis批量查询操作,xml中使用foreach案例

    使用场景:有一个订单表,实体类为OrderBase.java,订单有个状态为status值可能为"1,2,3,4,5,6",现在需要查询状态为"2,3,4"的订 ...

  9. MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射

    先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出 ...

随机推荐

  1. Android 自定义UI--指南针

    有了之前的基础,下面开始实现一个简单的指南针.首先来看一下效果图, 我们可以粗略将这个指南针分为三个部分,一是圆形背景,二是刻度,三是文本.那么在写代码的时候,就可以声明三个Paint画笔来画以上三个 ...

  2. Java 编程下使用 Class.forName() 加载类

    在一些应用中,无法事先知道使用者将加载什么类,而必须让使用者指定类名称以加载类,可以使用 Class 的静态 forName() 方法实现动态加载类.下面的范例让你可以指定类名称来获得类的相关信息. ...

  3. Linux命令vi/vim编辑

    一.vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:a) 命令 ...

  4. asp.net实现将网页内容输出到word并下载到本地

    个人觉得要实现这个功能如果没有类库提供的几个关键函数,还是比较繁琐的.所以首先介绍几个将要在代码中使用的关键函数和参数,然后再说函数实现.注意问题等. 关键函数: 1.函数原型:Response.Ap ...

  5. asp.net mvc 页面缓存

    在任务中需要实现点击浏览器back按钮,加载的前一页面需要强制刷新. 想要在前端通过js来绑定数据实现,但是觉得太麻烦,还是用另一种方式来解决: 不缓存该页面. 简单易懂: Response.Cach ...

  6. (转)sql中 in 、not in 、exists、not exists 用法和差别

    exists (sql 返回结果集为真)  not exists (sql 不返回结果集为真)  如下:  表A  ID NAME  1    A1  2    A2  3  A3 表B  ID AI ...

  7. MVC 路由Router

    Url路由将进入的请求发送给控制器操作. url路由使用路由表处理进入的请求 此路由表在应用程序第一次启动时创建. 路由表在Global.asax文件中设置

  8. Android入门3:从Toolbar到Material Design

    在Android5.0(API 21)之后,Toolbar被Google推广,逐渐走入大家视野.具体关于Actionbar和Toolbar的对比就不多啰嗦了,跟着潮流走是没错的.下面先上张简单的效果图 ...

  9. 7 Hbase put方式插入数据

    package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...

  10. 1、shell 简介

    Shell 本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥 梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地 ...