Ibatis 延迟加载(懒加载)含简单实例

Ibatis 延迟加载(懒加载)

 

业务场景 :查询小米的身份信息(A),通过延迟加载关联查询他的学习成绩信息(B)

 

Table A(身份信息表)

STU_ID

STU_NAME

STU_AGE

STU_SEX

123

小米 

18

 

Table B(成绩表)

STU_ID

STU_CHINESE

STU_MATH

STU_ENGLISH

123

66

77

88

 

映射的javaBean

(身份信息表)

Class Information{

Private String stuId;

Private String name;

Private String age;

Private String sex;

Private Grade chengji;//声明懒加载映射类 

Set....

Get...

...

}

(成绩表)

Class Grade{

Private String stuId;

Private String chinese;

Private String math;

Private String english;

Set....

Get...

...

}

 

<sqlMap  namespace =”demo”>

 

<resultMap  id=”lazyResultMap”   class=”**.**.Information”  >

<result column=”STU_ID”   property=”stuId”>

<result column=”STU_NAME”   property=”name”>

<result column=”STU_AGE”   property=”age”>

<result column=”STU_SEX”   property=”sex”>

 

<result column=”STU_ID”  select=”demo.queryGrade”  property=”chengji”>

//延迟加载映射,通过STU_ID作为参数去查询ibatisnamespacedemo下的queryGrade方法(如果queryGrade方法所需参数为实体,则column={stuId=STU_ID}),并返回结果映射到chengji属性中,触发查询需要前台或java中调用chengji属性

 

</resultMap>

 

<select  id =“queryGrade”  parameterClass=”java.lang.String”  resultClass=”*.*.Grade”>

Select * from  Grade where STU_ID=#param#

</select>

 

<select  id =“lazyMethod1”  parameterClass=”. . . ”  resultMap=”lazyResultMap”>

Selct * from Information

</select>

 

 

</sqlMap>

 

前台页面触发

 

<input  id=”” value=”${Information.chengji.chinese}”  >

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值