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>
我也在学习,我是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中
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*** 取值