`
yuhang_java
  • 浏览: 9661 次
  • 性别: Icon_minigender_1
  • 来自: 深圳-龙岗
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ibatis多条件查询

阅读更多
[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;// b和p都是变量。  
String sql= " brno like"+ b +"and pigday" = p;// b和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、动态查询方法

详细

 

分享到:
评论
1 楼 maojin 2011-04-08  
第3呢?怎样动态查询啊?

相关推荐

    ibatis动态多条件组合查询

    ibatis动态多条件组合查询 实例 说明

    Ibatis多表查询

    Ibatis 是一款轻量级的持久层框架,它与 JDBC 集成,但比 JDBC 更加方便,更易于管理数据库操作。...在实际项目中,可以根据具体需求调整查询策略,如添加条件查询、分页等,以满足不同的业务场景。

    iBatis条件查询

    在本资源中,"iBatis条件查询"着重展示了如何根据业务需求定制SQL语句进行数据检索,尤其在不涉及复杂关联查询的情况下,iBatis可以提供高效且简单的解决方案。 首先,iBatis的核心概念是SQL Map,它是一个XML配置...

    ibatis_动态查询条件

    iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以...

    ibatis多表查询过程

    当我们需要进行多表查询时,iBatis提供了一种高效且易于管理的方式。本文将深入探讨iBatis在处理多表查询时的具体步骤和技巧。 ### 1. iBatis简介 iBatis 是一个基于Java的持久层框架,它简化了数据库访问,并避免...

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    Ibatis复杂查询语句.doc

    在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...

    ibatis做连接查询 .doc

    注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...

    ibatis下oracle树查询

    通过指定起始节点(START WITH)和连接条件(CONNECT BY),我们可以构建出一个递归查询,从而获取整个树结构。 例如,假设我们有一个部门表DEPARTMENTS,包含ID(主键)、PARENT_ID(父ID)和NAME(部门名称)字段...

    Ibatis查询语句里,可以使用多表查询

    ### iBatis 多表查询知识点详解 #### 一、iBatis简介 iBatis 是一款优秀的持久层框架,它将 SQL 映射到 Java 对象,简化了 JDBC 编程过程中的繁琐操作,提高了开发效率。iBatis 的核心功能包括 SQL 映射、动态 SQL...

    Ibatis查询Id列表.doc

    根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...

    ibatis教程_查询指定id的单个对象

    本教程聚焦于如何使用Ibatis查询指定ID的单个对象,这对于日常的数据检索工作尤为重要。 首先,理解Ibatis的基本架构。Ibatis不是一个完整的ORM(对象关系映射)框架,而是介于SQL和Java之间的桥梁,允许开发者编写...

    动态ibatis查询语句配置

    动态查询语句配置是Ibatis的一个重要特性,它允许我们在运行时根据业务需求构建灵活多变的SQL语句。这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解...

    iBatis执行非查询语句(CRUD,函数和过程)

    这篇博客“iBatis执行非查询语句(CRUD,函数和过程)”深入探讨了如何在iBatis中执行创建、读取、更新和删除(CRUD)操作,以及调用数据库存储过程和函数。 一、iBatis简介 iBatis最初由MyBatis的创始人Clinton ...

    ibatis总结 ibatis ibatis ibatis ibatis

    - 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis的集成: - Struts作为MVC框架,主要负责视图与控制器的交互。在项目中,`...

    ibatis 之分页

    Ibatis,作为一个轻量级的Java持久层框架,提供了灵活的SQL映射机制,自然也支持分页查询。本文将深入探讨Ibatis实现分页的相关知识点,并基于提供的标签“源码”和“工具”,分享如何在实际项目中运用Ibatis进行...

    ibatis and和or联合查询 .doc

    在SQL查询中,`AND` 和 `OR` 是用来连接两个或多个条件的关键字。`AND` 关键字用于组合条件,并且只有当所有组合的条件都被满足时,才会返回相应的行;而 `OR` 关键字则只要其中一个条件被满足就会返回相应的行。 ...

    ibatis 一对多

    本文将深入探讨`iBatis` 中的一对多映射关系,以及如何通过源码理解和使用这个特性。 一对多映射是数据库关系模型中的常见概念,指的是一个父表(如部门表)可以对应多个子表(如员工表),每个部门可以有多个员工...

    ibatis demo,ibatis例子,ibatis示例

    4. **动态SQL**:Ibatis的动态SQL功能非常强大,可以在XML映射文件中通过`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`、`&lt;where&gt;`等标签实现条件判断,使得SQL语句更加灵活。 5. **参数映射**:Ibatis支持多种方式...

    IBatis完成单表基本的数据库操作 模糊查询

    通过阅读博客全文,你可能会学习到更多关于如何有效地使用iBatis进行数据库操作和优化查询性能的知识。 综上所述,iBatis提供了一种简单、灵活的方式来处理数据库操作,特别是像模糊查询这样的复杂查询。通过将SQL...

Global site tag (gtag.js) - Google Analytics