惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
量子位
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
J
Java Code Geeks
B
Blog
V
V2EX
博客园 - 三生石上(FineUI控件)
Blog — PlanetScale
Blog — PlanetScale
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
A
About on SuperTechFans
D
DataBreaches.Net
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
H
Help Net Security
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog

博客园 - 王永庆

java编程思想(3)感悟(9)---控制程序流 - 王永庆 - 博客园 ibatis学习笔记(5) - 王永庆 - 博客园 ibatis学习笔记(3) - 王永庆 - 博客园 ibatis学习笔记(2) ibatis学习笔记(1) Java编程思想3感悟(8)---一切都是对象 java编程思想3感悟(7)---抽象基类和接口、并发 java编程思想3感悟(6)---是一个与像是一个关系和伴随多态的可互换对象 java编程思想3感悟(5)---复用具体实现和复用接口 java编程思想3感悟(4)---被隐藏的具体实现 java编程思想3感悟(3)---每个对象都提供服务 java编程思想3感悟(2)---每个对象都有一个接口(方法) JSP处理表单的一些经验分享 Java语言异常处理(转载) log4j学习笔记2 Spring控制反转(IoC)的理解 java编程思想3感悟(1)---java的5个特性 bat文件说明 sql学习笔记(二)-----游标的使用
ibatis学习笔记(4) - 王永庆 - 博客园
王永庆 · 2007-11-25 · via 博客园 - 王永庆

    ibatis高级特性,处理表与表之间的关联。ibatis中,提供了Statement嵌套支持,通过Statement嵌套,我们可以实现关联数据的操作。
    1、一对多关联:

<sqlMap namespace="User">
<typeAlias alias="user" type="com.ibatis.sample.User"/>
<typeAlias alias="address" type="com.ibatis.sample.Address"/>
<resultMap id="get-user-result" class="user">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="addresses" column="id"
select
="User.getAddressByUserId"/>
</resultMap>
<select id="getUsers"
parameterClass
="java.lang.String"
resultMap
="get-user-result">
<![CDATA[
select
id,name,
sex
from t_user
where id = #id#
]]>
</select>
<select id="getAddressByUserId"
parameterClass
="int"
resultClass
="address">
<![CDATA[
select
address,
zipcode
from t_address
where user_id = #userid#
]]>
</select>
</sqlMap>

    多表关联查询大量数据时建议采用存储过程来处理,来避免系统问题
    2、一对一表关联:

<resultMap id="get-user-result" class="user">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="address" column="t_address.address"/>
<result property="zipCode" column="t_address.zipcode"/>
</resultMap>
<select id="getUsers"
parameterClass
="java.lang.String"
resultMap
="get-user-result">
<![CDATA[
select*
from t_user,t_address
where t_user.id=t_address.user_id
]]>
</select>

    在进行表关联的时候一定要注意:关联的2个pojo之间的联系,还有就是配置文件之间的关联。