`

Ibatis查询注入实现一对多查询

    博客分类:
  • Java
阅读更多
14、查询注入
查询注入是在一个查询中嵌入另外一个查询,这样做的目的是为了实现实体对象之间的关联关联关系(一对一、一对多、多对多)分单项双向。有关这些内容,是比较复杂的,笔者对此做了深入研究,并分别写了三篇来讲述。
查询注入的实现就是在实体属性为另外一个实体或者实体集合的时候,引入一个相关的查询来实现,例如,客户和订单的映射关系:
public class Customer {
    private Long id;
    private String name;
    private String address;
    private String postcode;
    private String sex;

    private List<Orders> orderlist = new ArrayList<Orders>();
}
    <resultMap id="result" class="customer">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="address" column="address"/>
        <result property="postcode" column="postcode"/>
        <result property="sex" column="sex"/>
        <result property="orderlist" column="id" select="orders.findByCustomerId"/>
    </resultMap>
在这个映射中,为了查询客户的时候,能查询到相关的订单,可以在映射orderlist属性的时候,将其指向另外一个查询orders.findByCustomerId,这个查询是以Customer的id为参数来查询的。
select="orders.findByCustomerId"这个查询定义如下:
    <select id="findByCustomerId" resultMap="result_base" parameterClass="long">
        select * from orders where customerId = #value#
    </select>
原理就是这么简单,然后根据实际情况,可以自由实现实体间的关联关系。
分享到:
评论

相关推荐

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...

    ibatis多表查询过程

    在数据库设计中,多表查询通常涉及到表之间的关联,例如一对一、一对多、多对多关系。在iBatis中,我们可以使用`&lt;select&gt;`标签来定义多表查询的SQL语句。 ### 3. 使用`&lt;include&gt;`标签 为了保持SQL语句的整洁和可...

    iBatis开发指南和一个iBatis实例

    "spring+iBatis处理1对多数据表实例"展示了如何将iBatis与Spring框架集成,实现更高级的数据操作。Spring的依赖注入可以简化iBatis的配置,而Spring的事务管理则能确保数据的一致性。1对多关系的处理通常涉及到集合...

    ibatis总结 ibatis ibatis ibatis ibatis

    - `applicationContext.xml`是Spring的主配置文件,它定义了Spring容器中的bean,包括对Struts、Ibatis等其他框架的配置,实现各组件间的依赖注入。 - `codelist.xml`则可能包含了全局共享的bean,如`...

    ibatis实现数据的操作

    本篇文章将详细讲解如何利用Ibatis实现数据的连接、增加、查询、删除和修改(CRUD)操作,以及.xml文件在SQL映射中的作用。 首先,Ibatis是一个轻量级的Java ORM(对象关系映射)框架,它的核心理念是将SQL语句与...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    ibatis的实现(包含模糊查询、关联查询、增删改查)

    在Ibatis中,你可以使用`&lt;association&gt;`标签来处理一对多或多对一的关系,或者使用`&lt;collection&gt;`处理多对多关系。以下是一个简单的例子,展示如何查询用户及其关联的订单: ```xml SELECT u.*, o.* FROM User ...

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    综上所述,这个实例展示了如何整合Struts2、Spring、iBatis和Oracle来构建一个完整的Web应用,实现了动态分页搜索和附件上传功能。这种架构具有良好的可扩展性和可维护性,适用于各种中大型企业级项目。开发者可以...

    ibatis包

    5. **结果映射**:Ibatis可以自动将查询结果映射到Java对象,也可以自定义映射规则,包括一对一、一对多、多对一等复杂关系的映射。 6. **缓存机制**:Ibatis提供了本地缓存和二级缓存两种策略,用于提高数据访问...

    ibatis api 帮助文档+IBATIS 开发文档

    4. **ResultMap**:定义了结果集如何映射到Java对象,支持复杂的列名到Java属性的映射,如一对一、一对多、多对多的关系映射。 5. **Transaction**:处理数据库事务,提供了开始、提交、回滚等操作。 **二、iBATIS...

    ibatis基本操作数据库

    通过定义`&lt;resultMap&gt;`,我们可以指定列名与Java属性的对应关系,甚至处理一对一、一对多、多对多等复杂关系。 4. **事务管理**:iBatis可以方便地进行事务控制,通过SqlSessionFactory和SqlSession对象,我们可以...

    iBatis文档

    此外,iBatis支持预编译的PreparedStatement,以防止SQL注入攻击,并提供了强大的结果集映射功能,能够自动将查询结果转换为Java对象,甚至处理一对多、多对一等复杂关系。同时,它的事务控制灵活,既支持手动控制,...

    ibatis官方中文文档

    `&lt;resultMap&gt;`标签可以处理复杂的一对多、一对一、多对多关系,以及自定义的类型转换。 6. **事务管理**: iBatis支持JDBC和Spring的事务管理方式,通过`transactionManager`配置来决定。在Spring环境下,可以利用...

    iBATIS官方

    它可以处理复杂的映射,如一对一、一对多、多对多关系,以及自定义类型转换。 6. Parameter Maps:Parameter Maps定义了如何将Java对象的属性值传递给SQL语句的参数。这使得动态SQL变得简单,可以根据条件灵活地...

    ibatis-2.3.

    它可以处理一对一、一对多、多对多的关系映射,并支持自动类型转换。 5. **Dynamic SQL**: iBATIS 提供了动态 SQL 功能,允许在 SQL Map 文件中使用条件语句,如 `if`、`choose`、`when`、`otherwise` 等,根据输入...

    iBATIS-SqlMaps中文教程集合

    - 多表关联查询:讲解如何处理一对一、一对多、多对多等关系的查询。 - 异常处理与事务管理:介绍如何配置和控制事务,以及处理可能出现的异常情况。 4. **高级篇** - MyBatis(iBATIS的升级版)简介:简述...

    ibatis拼接字符串

    为了实现这一功能,我们通常会使用动态 SQL 构建技术。 ### 三、代码分析 接下来,我们将对提供的代码片段进行详细分析: #### 1. 初始化 SQL 查询语句 ```java String[] ids = new String[]{"7", "8", "9"}; ...

    ibatis 资料大全

    4. **结果映射**:通过ResultMap,可以将查询结果自动映射到Java对象,包括一对一、一对多、多对多的复杂关系映射。 5. **参数映射**:使用#{param}占位符,配合Map或JavaBean传递参数,实现参数与SQL中的动态绑定...

    ibatis 相关jar包

    - 结果集映射:自动将查询结果映射到Java对象,支持一对一、一对多、多对多等复杂关系的映射。 - 动态SQL:在XML配置文件中可以编写动态SQL,根据条件动态拼接SQL语句。 3. **Java Web中的应用**: 在Java Web...

    夏昕-ibatis 开发指南pdf版

    而关联查询则能处理一对一、一对多、多对多的关系,使得复杂的数据结构也能轻松应对。延迟加载是一种优化策略,可以在需要时才加载关联的对象,减少了内存占用和不必要的数据库访问。 除此之外,iBatis与Spring框架...

Global site tag (gtag.js) - Google Analytics