`
wyang2008
  • 浏览: 31172 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis学习(2)一对多关系

阅读更多
ibatis一对多关系配置文件写法

   上节已经写了ibatis的相关配置文件和spring的集成,此处不多加赘述,主要看看配置文件该如何写。
1、新建两个类,一个Account包含多个OrderInfo
package ibatis.one.many;

import java.util.List;

public class Account {
	private int accountId;
	private String accountNo;
	private List orderList;
	
	public int getAccountId() {
		return accountId;
	}
	public void setAccountId(int accountId) {
		this.accountId = accountId;
	}
	public String getAccountNo() {
		return accountNo;
	}
	public void setAccountNo(String accountNo) {
		this.accountNo = accountNo;
	}
	
	public List getOrderList() {
		return orderList;
	}
	public void setOrderList(List orderList) {
		this.orderList = orderList;
	}
	
}

package ibatis.one.many;

import java.util.List;

public class OrderInfo {
	private int orderId;
	private int accountId;
	private String orederName;

	public int getOrderId() {
		return orderId;
	}
	public void setOrderId(int orderId) {
		this.orderId = orderId;
	}
	public String getOrederName() {
		return orederName;
	}
	public void setOrederName(String orederName) {
		this.orederName = orederName;
	}
	public int getAccountId() {
		return accountId;
	}
	public void setAccountId(int accountId) {
		this.accountId = accountId;
	}		
}


2、account.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap  PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"  "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="account">
	<typeAlias alias="Account" type="ibatis.one.many.Account" />
	<typeAlias alias="OrderInfo" type="ibatis.one.many.OrderInfo" />

	<resultMap class="Account" id="accountResultMap">
		<result property="accountId" column="accountId" />
		<result property="accountNo" column="accountNo" />
		<result property="orderList" column="accountId"
			select="getOrdersByAccountId" />
	</resultMap>
	<resultMap class="OrderInfo" id="orderResultMap">
		<result property="orderId" column="orderId" />
		<result property="orederName" column="orederName" />
		<result property="accountId" column="accountId" />
	</resultMap>
	<select id="getAccounts" resultMap="accountResultMap">
		<![CDATA[select * from Account]]>
	</select>
	<select id="getOrdersByAccountId" resultMap="orderResultMap">
		<![CDATA[ 
		select o.* from Account a,orderinfo o where o.accountId = a.accountId and a.accountId=#value#   ]]>
	</select>
</sqlMap>


3、测试类中main()中的内容:

try {
				ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
				SqlMapClient sqlMap=(SqlMapClient) ctx.getBean("sqlMapClient");

				sqlMap.flushDataCache();
				System.out.println("sqlMap=="+sqlMap);
				
				List accountList = sqlMap.queryForList("getAccounts",1);
				System.out.println("accountList=="+accountList.size());
				for(int i=0;i<accountList.size();i++){
					Account account = (Account) accountList.get(i);
					System.out.println(account.getAccountId()+"......."+account.getAccountNo());
					List orderList = account.getOrderList();
					System.out.println("orderList==="+orderList);
					for(int j=0;j<orderList.size();j++){
						OrderInfo orderInfo = (OrderInfo) orderList.get(j);
						System.out.println("orderInfo=="+orderInfo);
						System.out.println(orderInfo.getOrderId()+"....."+orderInfo.getOrederName());
					}
				}
//				Account account=(Account)sqlMap.queryForObject("getAccountInfoList", 1);
			
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
分享到:
评论

相关推荐

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

    2. **配置一对多关联** 在iBatis的映射文件中,我们需要为主表(一对一的一方)和从表(一对一的多方)分别创建`&lt;resultMap&gt;`。在主表的`&lt;resultMap&gt;`中,通过`&lt;collection&gt;`标签指定从表的映射信息,包括属性名、...

    ibatis学习总结

    【ibatis学习总结】 在Java应用中,ORM(对象关系映射)框架是连接数据库与业务逻辑的关键。相比像Hibernate和Apache OJB这样的"一站式"ORM解决方案,iBATIS提供了一种更为灵活的"半自动化"策略。iBATIS允许开发者...

    ibatis-2 源代码

    结果映射将查询结果与Java对象进行绑定,通过`&lt;resultMap&gt;`定义字段映射规则,包括简单的列名到字段名的映射,以及一对一、一对多等复杂关系的映射。 6. **事务管理** iBatis支持手动和自动事务管理,开发者可以...

    ibatis学习IBATIS好资料

    - **结果映射**:理解如何将数据库查询结果自动映射到Java对象,包括一对一、一对多、多对多关系的映射。 - **参数映射**:学习如何传递参数到SQL语句中,包括简单的值、复杂对象和集合参数。 - **插件扩展**:了解...

    ibatis 的关系映射

    iBatis 使用 `collection` 元素在 `resultMap` 中配置一对多关系。可以设置 `select` 属性,指定一个 SQL 语句来获取子记录集合。 3. **多对多映射**:这种关系更复杂,通常需要一个关联表来存储两个表的连接信息。...

    J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要

    - **一对多关联**:通过配置文件中的`&lt;association&gt;`标签定义一对多的关系映射。 - **一对一关联**:通过配置文件中的`&lt;association&gt;`标签定义一对一的关系映射。 ##### 2. 延迟加载 - 实现懒加载功能,只有当真正...

    iBatis开发指南和一个iBatis实例

    1对多关系的处理通常涉及到集合类型的映射,你可以从这个实例中学习如何配置和使用这种映射。 总的来说,这个压缩包为你提供了一个全面的iBatis学习路径,从基础到进阶,从理论到实践。通过深入阅读PDF文档,动手...

    ibatis 学习资料

    - **多对多映射**:在处理复杂关系时,iBatis提供了配置多对多关系的方法,使关联对象的处理变得简单。 总之,这份“iBatis 学习资料”将引导你从基础到进阶,全面掌握iBatis的使用,提升你在实际项目中的数据访问...

    ibatis学习资料大全

    - **结果映射**:ResultMap用于将查询结果映射到Java对象,可以处理一对一、一对多、多对多等各种复杂的对象关系映射。 - **缓存机制**:Ibatis提供了本地缓存和二级缓存,能够提高数据读取速度,减少数据库压力。 ...

    iBatis2.X入门附带完整项目

    通过`&lt;resultMap&gt;`标签,你可以定义字段到属性的映射规则,支持一对一、一对多、多对一等多种复杂关系的映射。 在项目源码中,你会看到如何将这些概念应用到实际的项目中。例如,`log4j`的使用对于日志记录非常重要...

    ibatis学习笔记(一)

    这篇“ibatis学习笔记(一)”可能是博主对Ibatis基础概念、安装配置以及基本使用的介绍,让我们通过标签“源码”和“工具”来深入探讨Ibatis的相关知识。 首先,Ibatis是一个轻量级的Java ORM(对象关系映射)框架...

    Struts2+Spring2+iBatis2整合的例子

    **Struts2** 是一个强大的MVC框架,它在Struts1的基础上进行了很多改进,提供了更灵活的控制流程和丰富的插件支持。在Struts2中,Action类是业务逻辑的核心,通过配置ActionMapping来指定请求与Action之间的映射关系...

    Ibatis.net学习例子以及使用教程书

    3. **结果映射**:使用定义结果集映射,可以将数据库查询结果自动转换为.NET对象,支持一对一、一对多、多对多等多种关系的映射。 4. **事务管理**:Ibatis.net提供了事务控制功能,可以在需要时开启或提交事务,...

    ibatis2小例子(转)

    6. **结果映射**:当查询结果复杂时,可以定义结果映射来处理一对一、一对多、多对多等关系,确保数据正确地转换为Java对象。 7. **动态SQL**:iBatis允许在XML映射文件中使用if、choose、when、otherwise、where、...

    Ibatis

    1.4 结果集映射:通过 `&lt;resultMap&gt;` 元素,定义了 SQL 查询结果如何映射到 Java 对象,支持一对一、一对多、多对多等复杂关系映射。 **2. Ibatis 工作原理** 2.1 配置:在启动时,Ibatis 读取配置文件,加载 SQL ...

    SQL&Ibatis学习 ppt

    5. 强大的功能:了解Ibatis的缓存机制、结果集映射(包括一对一、一对多、多对多)、延迟加载等功能,以及如何进行参数和结果的自定义类型处理器。 6. 集成与配置:学习如何将Ibatis框架集成到Spring等其他框架中,...

    ibatis学习总结文档

    本文档旨在对iBATIS的学习进行深入的总结,帮助初学者快速上手。 一、iBATIS概述 iBATIS的核心理念是“SQL Map”,它将SQL与Java代码分离,通过XML配置文件或注解来定义SQL语句,实现了数据访问层的灵活定制。这...

    Ibatis 常用学习资料

    9. **一对多、多对一关联映射**:在处理复杂关系时,Ibatis 提供了`&lt;association&gt;`和`&lt;collection&gt;`元素,用于映射一对一和一对多的关系,简化对象关系的构建。 10. **MyBatis Generator**:这是一个代码生成工具,...

    iBatis资料 语法

    一对多或多对一关系的处理是对象关系映射(ORM)中的常见问题,iBatis提供了优雅的方式来管理这些复杂的关系。而缓存机制则可以提高数据访问性能,通过存储已查询过的数据,减少数据库的访问次数。 `一个使用ibatis...

Global site tag (gtag.js) - Google Analytics