https://github.com/zfrHJ/mybaties/blob/master/mybaties/src/com/itheima/mybatits/mapper/OrdersMapperCustom.xml
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper |
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
<!-- namespace命名空間特殊作用: 如果使用mapper動態代理方法,這里就需要配置mapper接口地址 --> | |
<mapper> | |
<!--根據用戶id查詢一條記錄(返回單條記錄) --> | |
<!-- select 標簽表示sql查詢,內容會封裝到Mapped Statement中 可以將這個select標簽稱為一個statement | |
id:Statement 的id 用於標識select中定義的sql,id是在同一個命名空間中不允許重復 #{}:表示一個占位符,避免sql注入 | |
parameterType:表示輸入參數的類型 resultType:表示輸出 結果集單條記錄映射的java對象類型,select查詢的字段名和resultTyep | |
中屬性名一致,才能映射 #{}:表示parameter輸入參數的變量,如歌輸入參數是簡單類型,使用#{}占位符 變量名可以使用value或其其它的 --> | |
<select id="findUserId" parameterType="int" resultType="itheima.mybaties.po.User"> | |
select * from user where id=#{id} | |
</select> | |
<resultMap type="orders" id="ordersUserResulMap"> | |
<!-- id:訂單信息的唯一約束 --> | |
<!-- 如果由多個字段決定一條唯一記錄,id便簽需要定義多個 --> | |
<result column="id" property="id" /> | |
<result column="order_number" property="order_number" /> | |
<result column="user_id " property="user_id" /> | |
<!-- 配置用戶映射信息 將sql查詢的用戶信息映射到orders中的user屬性中 association :用於單個失聯對象的映射 property:將關聯信息映射到orders的那個屬性 | |
javaType: 映射屬性的類型 --> | |
<association property="user" javaType="com.itheima.po.User"> | |
<!-- id:關聯的用戶信息的唯一約束 --> | |
<!-- property :id指定的列映射到關聯com.itheima.po.User類的那個屬性中 --> | |
<id column="user_id" property="id" /> | |
<result column="username" property="username" /> | |
<result column="address" property="address" /> | |
</association> | |
</resultMap> | |
<!--一 對多 --> | |
<resultMap type="orders" id="ordersUserDetailResultMap" | |
extends="ordersUserResultMap"> | |
<!-- 訂單級用戶信息,繼承ordersUserResultMap --> | |
<!-- 映射訂單明細信息collection:映射集合對象 property:將明細信息映射到那個集合屬性中。ofType:集合中對象的類型--> | |
<collection property="orserdetails" ofType="com.itheima.po.Orderdetail"> | |
<!-- id:訂單明細的唯一約束 | |
property:ofType指定類型的屬性 | |
--> | |
<id column="orderdetail_id" property="id"/> | |
<result column="item_id" property="item_id"/> | |
<result column="item_num" property="item_num"/> | |
<result column="item_price" property="item_price"/> | |
</collection> | |
</resultMap> | |
<select id="findOrderUserDetailList" resultMap="ordersUserDetailResultMap"> | |
SELECT | |
orders.*, | |
user.username, | |
user.address, | |
orderdetail.id orderdetail_id, | |
orderdetail.item_id, | |
orderdetail.item_num, | |
orderdetail.item_price | |
FROM | |
orders, | |
USER, | |
orderdetail | |
WHERE orders.user_id = user.id AND orders.id = | |
orderdetail.orders_id | |
</select> | |
<!-- 查詢訂單及訂單明細信息及商品信息 --> | |
<select id="findOrdersUserDetailItemList" resultMap="ordersUserDetailItemResultMap"> | |
SELECT | |
orders.*, | |
user.username, | |
user.address, | |
orderdetail.id orderdetail_id, | |
orderdetail.item_id, | |
orderdetail.item_num, | |
orderdetail.item_price , | |
items.item_detail, | |
items.item_name, | |
items.item_price item_price_price | |
FROM | |
orders, | |
USER, | |
orderdetail, | |
items | |
WHERE orders.user_id = user.id | |
AND | |
orders.id = orderdetail.orders_id | |
AND orderdetail.item_id = items.id | |
</select> | |
</mapper> |