ibatis学习笔记(4)

    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之间的联系,还有就是配置文件之间的关联。

你可能感兴趣的:(ibatis)