`
- 浏览:
81796 次
- 性别:
- 来自:
北京
-
-
[b]ibatis 的多条件查询
-
ibatis自带的入门例子中,查询条件只有一个。多数情况下,查询条件都是多个的。如果要实现多条件查询,如何实现?
-
百度了一下,有以下解决方案:
-
1
,在java代码中使用字符串拼接
-
映射文件中这样写:
-
-
view plaincopy to clipboardprint?
-
<select id="getBrno"
parameterClass=
"java.lang.String"
resultMap=
"bctlResult"
>
-
select brno,brname from bctl where $sql$
-
</select>
-
<select id="getBrno"
parameterClass=
"java.lang.String"
resultMap=
"bctlResult"
>
-
select brno,brname from bctl where $sql$
-
</select>
-
-
然后再java文件中拼写出SQL的条件语句:
-
-
view plaincopy to clipboardprint?
-
String sql= " brno like"
+ b +
"and pigday"
= p;
-
String sql= " brno like"
+ b +
"and pigday"
= p;
-
-
再在方法中调用传递进去:
-
-
view plaincopy to clipboardprint?
-
brList = sqlMap.queryForList("CR.getBrno"
, sql);
-
brList = sqlMap.queryForList("CR.getBrno"
, sql);
-
-
这是一种方法,很明显这种方法有一种弊端,就是sql语句需要写在java源文件中。如果需要更改查询条件,就不得不修改java文件,再重新编译。这与ibatis的本意有些违背。
-
因此本人没有测试过以上方法是否可行。
-
-
2
,直接在映射文件中配置参数
-
映射文件这样写:
-
-
view plaincopy to clipboardprint?
-
<!-- 多条件查询-->
-
<parameterMap id="myParam"
class
=
"java.util.HashMap"
>
-
<parameter property="id"
/>
-
<parameter property="name"
/>
-
</parameterMap>
-
<select id="multConQuery"
parameterMap=
"myParam"
resultClass=
"Department"
>
-
select * from department where id = ? and name = ?
-
</select>
-
<!-- 多条件查询-->
-
<parameterMap id="myParam"
class
=
"java.util.HashMap"
>
-
<parameter property="id"
/>
-
<parameter property="name"
/>
-
</parameterMap>
-
<select id="multConQuery"
parameterMap=
"myParam"
resultClass=
"Department"
>
-
select * from department where id = ? and name = ?
-
</select>
-
-
java文件中这样调用:
-
-
view plaincopy to clipboardprint?
-
public
Department queryDepartmentByIdAndName(
int
id,String name)
-
{
-
Department dept = new
Department();
-
try
-
{
-
sqlMapClient.startTransaction();
-
HashMap hmParam = new
HashMap();
-
hmParam.put("id"
,id);
-
hmParam.put("name"
,name);
-
sqlMapClient.queryForObject("multConQuery"
,hmParam,dept);
-
sqlMapClient.commitTransaction();
-
}
-
catch
(Exception e)
-
{
-
e.printStackTrace();
-
}
-
return
dept;
-
}
-
-
-
-
3
、动态查询方法
-
-
详细
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
ibatis动态多条件组合查询 实例 说明
ibatis_动态查询条件详解及需要注意的地方
iBatis做的按条件查询,没关联其他表,内带Mysql,适用于小型项目,hibernate是全自动化,如有朋友想学习下半自动化持久层框架,那就来下载这个看看吧。。
ibatis入门级别代码,带有增删改查,多条件查询,单对象查询和数据集合查询,作为刚学习ibatis时使用(码云同步)
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
ibatis-generator自动生成表的xml,dao,model文件,并且支持分页查询,条件查询等,从而节省大量的自己写sql的时间
iBatis 16个常用SQL语句 ...上面的语句将查询`StatMemberAction`表中满足条件的记录,输入参数中包含一个数组`moduleId`。 iBatis提供了一个灵活的方式来配置SQL语句,支持各种类型的输入参数和复杂的查询语句。
开发指南 iBATIS SQL Maps Page 3 of 62 Map类型的Result 复杂类型属性(即自定义类型的属性) 避免N+1 Select(1:1) 延迟加载 VS 联合查询(1:1) 复杂类型集合的属性 避免N+1 Select(1:M和M:N) 组合键值或多...
常用IBATIS配置,返回新建数据ID,分页查询,查询条件,模糊查询,date时间段,list集合,截止日期
本书是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例...
• iBatis对查询结果集进行本地缓存。 • Cache的key由haskcode、checksum、查询参数、sqlmap Id、sql语句、调用方法名等构成。由此可以看出,不同的参数会有不同的Key。注意,他不是以查询参数的Class的hashcode或 ...
iBATIS是以SQL为中心的持久化层...iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。 iBATIS使用xml文件来映射这些输入以及输出。
用ibatis持久层框架写了一个带条件的简单查询,以及ibatis需要的jar包
mybatis中操作json类型数据(csdn)————程序
使用动态查询是iBatis一个非常强大的功能。有时你已经改变WHERE子句条件的基础上你的参数对象的状态。在这种情况下的iBATIS提供了一组可以映射语句中使用,以提高SQL语句的重用性和灵活性的动态SQL标签。
MySQL优化提高百万条数据的查询速度 MySQL优化是指在MySQL数据库管理系统中,通过各种优化技术和方法,提高数据库的性能和查询速度。以下是MySQL优化提高百万条数据的查询速度的15个知识点: 1. 对查询进行优化,...
经过一段时间的摸索,写了一个例子,可以完整的实现Ibatis+spring+Ecside的整合,很小,很方便。...不过只是实现了单条件的查询,更复杂的正在做,不久可以和大家分享。 由于设计内部的数据删除了spring的配置文件。
SQL Maps (com.ibatis.sqlmap.*)......................................................................................................5 SQL Map的概念........................................................
第25课 查询设备信息(根据会议室条件查询) 第26课 添加会议室 第27课 会议管理(查询+修改) 第28课 会议室管理(修改+删除) 第29课 会议室查询(查看)+ajax验证会议室编号 第30课 会议室预约(1) 第31课 会议室...
一级缓存的使用场景是,当我们在同一个会话中多次执行相同的 SQL 语句和参数时,Mybatis 会从缓存中取出结果,而不是每次都去数据库中查询。 一级缓存的使用条件是: 1. 必须是相同的 SQL 和参数 2. 必须是相同的...