mybatis参数查询

  • 单个参数查询

在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);

时间: 02-07

mybatis参数查询的相关文章

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

多参数查询,使用parameterType.实例: 用户User[id, name, age] 1.mysql建表并插入数据 2.Java实体类 public class User { public User() { } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } private int id; private String name;

在Mybatis中使用注解@多个参数查询

@Select("SELECT * FROM wc_homework WHERE organization_id=#{classId} ORDER BY createtime DESC LIMIT #{start},#{count}") @Results({ @Result(column = "course_id", property = "course_id"), @Result(column = "homework_id"

(转载)深入了解MyBatis参数

原文地址:http://blog.csdn.net/isea533/article/details/44002219 深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Cause: "The expression 'xxx' evaluated

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

先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出现了如下错误:Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer' 因为出现了这个问题,

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题 原因: 是因为geometry的坐标系和所要查询的图层不一样导致的(问题引起是由于底图中叠加了不同的坐标系的引起的) 问题描述: 我在公司做好的功能并且测好了,到现场出了问题,发现通过where语句查询时正常的,拉宽查询不正常.并且通过网页打开图层查询请求页面,手动输入代码中得到的geometry查询是可以查到数据的. 问题解决过程: 通过fiddler跟踪请求的http路径(因为arcgisAPI请求arcg

Mybatis like查询的写法--转载

原文地址:http://lavasoft.blog.51cto.com/62575/1386870 Mybatis like查询官方文档没有明确的例子可循,网上搜索了很多,都不正确. Mybatis 3.2.6 经过尝试,给出三种可靠可用的写法: select * from person where name  like "%"#{name}"%" select * from person where name  like '%'||#{name}||'%' sel

Mybatis Collection查询集合只出现一条数据

Mybatis Collection查询集合只出现一条数据 1.原因 如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条. 2.解决办法 级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的.但在mybatis中主从表需要为相同字段名设置别名.设置了别名就OK了. 例子: 主表Standard, 从表StandEntity,均有名为id的字段 <resultMap id="StandardAndEntityResultMap"

MyBatis 级联查询一对一与一对多

mybatis是通过映射sql语句把关系模型(数据库中的表)与领域模型(java中的实体类)关联起的  简单分析级联查询:       关系模型中:表与表只有主外键关联       领域模型中:实体类与实体类这间关联,只有一和多的关系.                            一是指别一个实体类以对象属性存在当前实体类中.                            多是指别一个实体类以集合对象属性存在当前实体类中 下面我以例子的形式给大家说明:数据库脚本如下:drop

Mybatis多参数查询映射

最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴露了很多问题,其中最让我头疼的就是selete的parameterType问题,网上这类的帖子虽然有但是不全,很多情况下很难找到你想要的答案.为此我对这个问题进行了总结,希望对像我这样的新手有一定的帮助. (一)单个参数public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" para