- 浏览: 932044 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (251)
- WebService (17)
- IBatis (22)
- Hibernate (1)
- SpringMVC - 基础篇 (32)
- Spring (15)
- Java (11)
- JVM及调优 - 基础篇 (4)
- 集群 (14)
- 数据库 (17)
- WebSphere (5)
- 多线程 (4)
- 集合、容器 (2)
- DB Pool (1)
- Power Designer (5)
- Maven基础 (5)
- JS (14)
- WEB 前端 (5)
- 实用小工具 (17)
- 社会、人 (2)
- 乱七八糟 (18)
- ASM&CGLIB - 基础篇 (12)
- 缓存 (1)
- 性能 (1)
- 设计之殇 (1)
- 分布式事务 (1)
- 单点登录 (11)
- 分布式 Session (4)
- Memcached - 基础篇 (6)
最新评论
-
一笑_奈何:
楼主写的还真行不错。
扫盲贴 - J2EE集群之JNDI集群实现 -
xuezhongyu01:
博主写的很详细,但最后还是没明白,最后调用BasicDataS ...
Spring中的destroy-method方法 -
Mr梁:
commons-fileupload.jar commons- ...
SpringMVC 中文件上传 MultipartResolver -
Eywa:
总结的很不错
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法 -
TryRelax:
fastjson 比 jackson 好用吧?
Spring MVC Jackson DateFormat
Result Map还可以装入代表复杂类型对象集合(List)的属性,用以表示在数据库中相互关系为多对多或一对多的数据。拥有集合属性的类作为“一”的一方,而在集合中的对象作为“多”的一方。用来装入对象集合的mapped statement和上面例子一样。唯一的不同是,让SQL Map架构装入复杂类型集合(List)的业务对象的属性必须是java.util.List或java.util.Collection类型
映射文件:
Category类: 注意: private List productList; DAO层: Test类: 结果: Category---id:1 <!--complex type Collection property-->
<resultMap id="get-product-result" class="product">
<result property="id" column="prd_id"/>
<result property="description" column="prd_description"/>
<result property="price" column="prd_price"/>
</resultMap>
<resultMap id="get-categery-complex-list" class="category">
<result property="id" column="cat_id"/>
<result property="description" column="cat_description"/>
<result property="productList" column="cat_id" select="getProductListByCatId"/>
</resultMap>
<select id="getCategory-complex-list" resultMap="get-categery-complex-list" parameterClass="int">
<![CDATA[
select * from t_category where cat_id = #value#
]]>
</select>
<select id="getProductListByCatId" resultMap="get-product-result" >
<![CDATA[
select * from t_product where prd_cat_id=#value#
]]>
</select>
package com.ibatis.dataobject;
import java.util.Iterator;
import java.util.List;
public class Category {
@Override
public String toString() {
String temp = "Category---id:" + this.id + "\n" + "description:" + this.description;
for (Iterator it=this.productList.iterator();it.hasNext();) {
Product product = (Product)it.next();
temp += "\n" + product.toString();
}
return temp;
}
private int id;
private String description;
private List productList;
public List getProductList() {
return productList;
}
public void setProductList(List productList) {
this.productList = productList;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public List getProductList() {
return productList;
}
public void setProductList(List productList) {
this.productList = productList;
}public Category getProductUseComplexTypeList(int id) throws SQLException {
init();
Category category = (Category)sqlMapClient.queryForObject("getCategory-complex-list", id);
return category;
}
/**
* 测试复杂类型集合的属性
* @throws SQLException
*/
public void getProductUseComplexTypeList() throws SQLException {
Category category = productDao.getProductUseComplexTypeList(1);
System.out.println(category);
}
description:sports
Product----id:1
description:basketball
price:206.99
Product----id:2
description:football
price:106.99
发表评论
-
iBATIS缓存
2011-12-12 21:33 1163为了提高应用程序性 ... -
iBatis批处理(batch)
2011-09-05 23:47 6956spring集成了ibatis的批量提交的功能,我们只要调用A ... -
一个Spring+iBatis框架进行batch处理的问题
2011-09-05 23:23 1621在使用org.springframework.jdbc.dat ... -
ibatis 注意点
2011-08-08 19:28 1381insert,update,delete 返回值 inser ... -
ibatis 之 动态SQL查询(dynamic )
2011-06-12 12:13 2287映射文件: <select id=" ... -
ibatis 之 复杂类型属性(即自定义类型的属性)
2011-06-12 11:54 3448复杂类型用以表示在数 ... -
ibatis 之 java.util.Map作为parameterClass和resultClass
2011-06-12 11:21 51601.Map作为parameterClass 映射 ... -
ibatis Tips 之 resultMap
2011-05-29 21:04 1209转载:http://xulongfa.iteye.com/bl ... -
ibatis Tips之parameterMap
2011-05-29 21:03 1341转载:http://xulongfa.iteye.com/bl ... -
iBatis查询API
2011-05-29 12:34 1856转载:http://sarin.iteye.com/blog/ ... -
iBatis查询select详解
2011-05-29 12:20 2216转载:http://sarin.iteye.com/blog/ ... -
ibatis 表与表的关联查询
2011-05-22 15:04 1265ibatis高级特性,处理表与表之间的关联。ibatis中,提 ... -
ibatis 动态映射机制
2011-05-22 14:15 1456对于这个组合查询页 ... -
sqlMapConfig.xml配置文件详解
2011-05-22 13:04 3553sqlMapConfig.xml配置文件详解: X ... -
ibatis缓存
2011-05-22 12:52 1361iBatis的缓存配置比较简单易懂,以我使用的iBati ... -
ibatis resultclass "java.util.hashmap" 缓存问题
2011-05-22 12:13 1522在做ibatis项目过程中遇到如下样式动态查询 <se ... -
ibatis # $区别
2011-05-22 11:55 14361、#可以进行预编译,进行类型匹配,#变量名# 会转化为 j ... -
iBATIS入门示例及注释
2011-05-08 18:20 1796工程的结构: 一、SqlMapConf ... -
iBATIS 三个版本小细节对比
2011-05-08 16:12 1202iBATIS 三个版本小细节对比 sqlMapConfig ... -
深入分析 iBATIS 框架之系统架构与映射原理
2011-05-07 12:48 1220原文:http://www.ibm.com/developer ...
相关推荐
文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,我们将详细解析这个查询语句中的关键知识点。 1. **动态SQL**: - `<dynamic>`标签用于动态...
在“iBATIS-SqlMaps中文教程集合”中,你将找到四本深入浅出的教程,这些教程涵盖了iBATIS的基础使用、高级特性和实战案例,帮助开发者快速掌握并熟练运用iBATIS解决项目中的实际问题。 1. **基础篇** - iBATIS...
iBATIS是一个开源的Java库,它允许程序员将SQL数据库查询与应用程序代码分离,从而简化了数据访问层的实现。...无论你是初学者还是有经验的开发者,这个文档集合都会是你深入理解和使用iBATIS的重要资源。
- **复杂类型**: 包括JavaBean对象、数组、集合等。这些类型在iBatis中通常通过`HashMap`或特定的实体类进行封装后传递。 #### #与$的区别 在iBatis中编写SQL语句时,可以使用`#{}`和`${}`两种方式来插入参数。这...
在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级查询技术,包括处理复杂的集合属性、映射关系的继承、语句类型和DDL(Data Definition Language),以及如何处理大规模数据集。 1. **使用...
在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...
iBATIS提供了集合映射和关联映射的方式来处理这些关系,使我们能够在Java对象中方便地操作这些复杂的数据结构。 其次,属性设置详解涉及到的是如何在iBATIS中设置和获取Java对象的属性,以及如何将这些属性与数据库...
以及ibatis的概述、如何开始使用ibatis、构建SqlSessionFactory的方法(包括通过XML和不使用XML的方式)、获取SqlSession的过程、探索映射SQL语句的方法、命名空间的注意事项、作用域与生命周期的解释、mapper配置...
IBatis的强大之处在于其动态SQL功能,可以利用条件判断、循环等构造复杂的SQL语句。例如,使用`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签来构建动态查询。 **八、性能优化** 通过合理的缓存策略、批处理和...
8. **参数映射**:在调用SQL时,iBATIS可以自动将Java对象的属性值绑定到SQL的参数上,支持简单类型和复杂类型的参数映射。 9. **动态语句**:iBATIS允许根据条件动态生成SQL,如使用`<if>`、`<choose>`、`<when>`...
- **3.4.8 复杂集合属性** - 支持对集合类型的属性进行映射,包括列表和集合。 - **3.4.9 避免N+1查询(一对多或多对多)** - 使用关联查询或子查询来减少查询次数。 - **3.4.10 组合键或多个复杂参数属性** -...
### iBatis中的动态SQL语句详解 ...同时,动态SQL的使用也使得iBatis成为处理复杂数据查询的理想选择之一。希望本文能帮助开发者更好地理解和掌握iBatis框架中的动态SQL技术,从而提升开发效率和项目质量。
2. **结果映射**: iBATIS 支持将数据库查询结果自动映射到Java对象,这包括基本类型、复杂类型以及集合类型的映射。 3. **事务管理**: iBATIS 提供了事务控制机制,可以手动或者自动管理数据库事务,以确保数据的...
5. **参数映射**:Ibatis支持多种类型的参数映射,包括简单的值、复杂对象、数组和集合。它能够自动将.NET对象的属性映射到SQL语句的参数。 6. **结果集映射**:Ibatis可以根据预先定义的结果集映射规则,自动将...
iterate标签的基本语法是`(" close=")" conjunction=","/>`,其中`property`指定了集合属性的名称,`open`和`close`定义了循环开始和结束的符号,`conjunction`则是元素之间的连接符。在实际应用中,iterate可以帮助...
6. Result Mapping:将数据库查询的结果映射到.NET对象,支持集合映射、自定义类型转换等功能。 7. Dynamic SQL:允许在XML配置文件中动态构建SQL语句,增强了SQL的灵活性和可维护性。 在“IBatis教程.pdf”中,...
3. 参数映射:理解如何传递参数到SQL语句,包括简单类型、复杂类型和Map。 4. 结果映射:学会如何将数据库查询结果映射到Java对象上,包括一对一、一对多、多对多的关系映射。 5. 动态SQL:熟悉如何在映射文件中使用...