`
wuyoubf
  • 浏览: 39033 次
  • 性别: Icon_minigender_1
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

iBATIS 多对多

阅读更多
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"   "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="teacher">
       <typeAlias alias="Teacher" type="com.lsm.domain.Teacher" />
       <typeAlias alias="Student" type="com.lsm.domain.Student" />
  
       <resultMap class="Teacher" id="teacherBasicResultMap">
              <result property="id" column="id"/>
              <result property="name" column="name"/>
              <result property="subject" column="subject"/>
       </resultMap>
       <!-- 下面这个resultMap中有个students属性,这个结果映射继承自上面的结果映射由于有了继承,结果映射可以任意扩展-->
       <resultMap class="Teacher" id="teacherWithTeacherResultMap" extends="teacherBasicResultMap">
              <result property="students" column="id" select="getStudentsByTeacherId"/>
       </resultMap>
       <!-- 这个查询中使用到了上面定义的结果映射,从而决定了查询出来的Teacher中关联出相关的students,在student.xml中配置相似,不再注释。-->
       <select id="getTeachers" resultMap="teacherWithTeacherResultMap">
              <!--[CDATA[  select * from teacher  ]]-->
       </select>
  
       <select id="getStudentsByTeacherId" resultClass="Student">
              <!--[CDATA[   select s.* from student s,student_teacher st where s.id=st.studentid and st.teacherid=#value#   ]]-->
       </select>
</sqlMap>

 

package com.lsm.domain;
import java.util.List;
public class Teacher {
      private int id;
      private String name;
      private String subject;
      private List students; //注意这里有个List类型的students,表示一个老师对应多个学生
 
      public List getStudents() {
            return students;
      }
      public void setStudents(List students) {
            this.students = students;
      }
      //省略掉其他的getter and setter
}

 这里将查询teacher和student的<select>混合在一个文件中了,不如分开清晰。《iBatis2学习笔记:多对多映射(双向) 》中的例子比较好。

分享到:
评论

相关推荐

    ibatis多对多关系(详细)

    iBatis多对多关系详解 iBatis是一种流行的持久层框架,用于简化Java应用程序和关系数据库之间的交互。在本文档中,我们将详细介绍iBatis在处理多对多关系时的配置和实现。 多对多关系 多对多关系是一种常见的关系...

    ibatis 多对多

    在Ibatis中处理多对多关系时,我们需要使用关联映射来定义这种关系。 1. **配置关联映射** 在Ibatis中,多对多关系通常通过`&lt;collection&gt;`标签来实现,它定义在一个实体类的映射文件中。这个标签通常包含`select`...

    ibatis 一对多 多对多完整映射

    本文将深入探讨如何在iBATIS中实现一对多和多对多的关系映射,并提供相关的源码分析和工具使用技巧。 **一对多关系映射** 在数据库设计中,一对多关系是指一个父记录可以与多个子记录关联,例如,一个用户可以有多...

    ibatis配置多表关联(一对一、一对多、多对多

    ibatis配置多表关联(一对一、一对多、多对多

    ibatis one to many mapping

    5. `ibatis多对多映射2.htm` 和 `ibatis多对多映射4.html` - 可能是补充材料,提供额外的例子或解决常见问题的方法。 综上所述,iBatis 的一对多和多对多映射是数据库操作中的重要概念,它们通过 ResultMap 和特定...

    ibatis 一对多

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

    ibatis 一对多关系映射

    首先,我们需要在映射文件中定义主表(一对一端)和从表(多对一端)的映射。假设我们有一个`User`类对应`users`表,一个`Order`类对应`orders`表,其中`orders`表有一个`user_id`字段作为外键关联到`users`表。 在...

    ibatis多表查询

    在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...

    ibatis一对一、多对一示例

    利用ibatis实现一对一、多对一的示例代码。每种关系用两种方式实现,具体的讲解可看我的博客http://blog.csdn.net/duwenchao1986/article/details/8565386

    Ibatis多表查询

    在多表查询中,Ibatis 提供了多种方式来处理复杂的关联查询,包括一对一、一对多、多对一和多对多等关系。在这个例子中,我们将探讨如何在 Ibatis 中实现一对多的关系查询。 首先,我们创建了两个表:`book` 和 `...

    Ibatis一对一映射提示

    本篇将深入讲解iBATIS一对一映射的概念、配置及应用,帮助你更好地理解和运用这个功能。 一对一映射在数据库设计中是指两个表之间存在一对一的关系,例如,一个员工可能只有一个部门,一个部门也只对应一个员工。在...

    Mybatis/ibatiS多表映射 一对一 一对多 extjs前台取值 详细讲解

    总结来说,这个话题覆盖了Mybatis/iBatis中的多表映射,通过XML配置文件处理一对一和一对多关系,以及如何在ExtJS前端通过Model和Grid获取并展示这些数据。了解这些知识对于开发涉及多表交互的应用至关重要,能够...

    ibatis多表查询过程

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

    ibatis实战之一对多关联(源代码)

    本篇将聚焦于iBatis的一对多关联映射实战,帮助开发者更好地理解和运用这一特性。 在关系型数据库中,一对多关联是非常常见的一种数据关系,例如一个用户可以拥有多个订单,一个部门可以包含多个员工等。在iBatis中...

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

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

    ibatis总结 ibatis ibatis ibatis ibatis

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

    ibatis多对一代码示例

    ### ibatis多对一代码示例解析 #### 一、ibatis简介与多对一映射概念 在深入了解本文档之前,我们先简单回顾一下ibatis(现称为MyBatis)的基本概念及其在多对一关系处理上的应用。ibatis是一款优秀的持久层框架,...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,...实践是检验真理的唯一标准,所以亲自动手尝试这个ibatis demo,会让你对Ibatis的理解更加深入。

Global site tag (gtag.js) - Google Analytics