iBatis多表查詢,iBatis
<typeAlias alias="Product" type="com.shopping.entity.Product"/> <typeAlias alias="ProductType" type="com.shopping.entity.ProductType"/> <resultMap id="queryAllProduct" class="Product"> <result property="proId" column="proid"/> <result property="proName" column="proname"/> <result property="proDesc" column="prodesc"/> <result property="price" column="price"/> <result property="img" column="img"/> <result property="proTime" column="protime"/> <result property="size" column="size"/> <result property="type" column="typeid" select="queryProductTypeById"/> </resultMap> <select id="queryProductTypeById" parameterClass="int" resultClass="ProductType" > select typeid,typename from producttype where typeid=#typeid#<select><select id="queryAllProducts" resultMap="queryAllProduct"> select proid,proname,prodesc,price,img,protime,size,typeid from product<select>
ibatis多表查詢
我也在學習,我是java語言開發的,但原理是一樣的。我講一下我做的!
在實體類裡寫出表A裡寫一個 private List<Grade> grades;欄位
然後修改xxxx.namingsql.xml這個檔案。
<result property="grades" column="id" select="getGradeByUserId" />
“getGradeByUserId”是要寫的一個查詢所有成績表的查詢語句ID
<select id="getGradeByUserId" parameterClass="int" resultClass="成績表">
<![CDATA[
select 學生編號,課程名稱,課程成績 from B where 學生編號=#value#
]]>
</select>
這個查詢出所有的A中資訊
<select id="getUserList" resultMap="result">
select 學生編號,學生姓名,和性別from A
</select>
當你寫方法,調用getUserList時,會自動調用getGradeByUserId方法把B中的資料填充到grades中
iBATIS多表查詢的問題
resultMap = "java.util.HashMap"
sql這麼寫:
select sum(odd_price) sumoddprice,odr_customer_id custid
from sal_order join orders_line
on odd_order_id=odr_id
group by odd_order_id
然後用hashMap。get*** 取值