寫在開頭的話:
首先要討論下為什么一定要用一對多、多對一,如果我的實體bean 中并不是和數據庫中的表做到一一對應,實體bean 的屬性比表字段要多(當然是為了滿足業務)?
那么不用對應關系,也可以解決業務上的需求。
但是這樣會讓你的實體bean 顯得是如此的丑陋和混亂,為了保持pojo 的整潔,所以有必要用對應關系(個人感覺。。。)
不管你采不采用對應關系來查詢,sql 語句并沒有簡化寫法,這和hibernate 的HQL來級聯查詢的效果不同?
?
一對多之 collection:?
一對多sql語句怎么寫?配置文件:(方式一 更利于resultMap 的重用)
<!-- 方式一 ?-->?
?
<!-- 方式二: -->
?<resultMap type="com.azcsoft.vo.Author" id="authors">
? <result property="aid" column="a_id" />
? <result property="aname" column="aname" />
? <result property="asex" column="asex" />
? <result property="birsday" column="abirsday" />
? <collection property="blogs" ofType="com.azcsoft.vo.Blog"?>
<result property="bid" column="b_id"/>
? <result property="bname" column="bname"/>
? <result property="bcontent" column="bcontent"/>
? <result property="ctime" column="bctime"/>
? </collection>
?</resultMap>
?<select id="authorSel" resultMap="authors">
?select a.a_id,a.aname,a.abirsday,b.* from author a left join blog b on a.a_id = b.a_id
?</select>?
?
?多對一 之 association
? 方式一:(利于resultMap 的重用)
數據庫一對多,?
? 方式二:
<resultMap type="com.azcsoft.vo.Blog" id="blogs">
<result property="bid" column="b_id"/>
<result property="bname" column="bname"/>
<result property="bcontent" column="bcontent"/>
<result property="ctime" column="bctime"/>
<association property="author" column="a_id" javaType="com.azcsoft.vo.Author">
<result property="aid" column="a_id" />
<result property="aname" column="aname" />
<result property="asex" column="asex" />
<result property="birsday" column="abirsday" />
</association>
? ? ?</resultMap>
<select id="blogSel" resultMap="blogs">
select * from blog a left join author b on a.a_id = b.a_id
? ? ?</select>
?
------------------------------------對象:
?}
一對多和多對一sql表。?
------------------------------------表:?
STU 表中 關聯 TEA 的主鍵?
?