国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

MyBatis(六) resultMap 多表查詢 之(一)

2024-04-27 15:19:04
字體:
供稿:網(wǎng)友

resultMap 用于映射 對象關(guān)系的 時使用。 對照對象的屬性可以很方便的寫出 mapper.xml 映射文件。

下面用一個例子來再次說明resultMap 的映射過程。 場景如下: 需要查詢 多個用戶,當(dāng)點(diǎn)擊查看是可以查看他的所有的訂單,點(diǎn)擊訂單時可以查看里面的商品

如果要完成這個需求,對應(yīng)的實(shí)體對象如下:

對象結(jié)構(gòu)

Order//訂單類 |--int id |--int userId |--date createTime |--User user User //用戶信息 |--int id |--String name |--String address |--List<Order> orderList //該用戶的所有訂單 |--List<OrderItem> orderItemList//該訂單的詳情記錄 OrderItem //訂單詳情 |--int id |--orderId //訂單id |--int goodsId //商品id |--int number //購買數(shù)量 |--goods goods goods //商品對象 |--id |--name |--PRice

下面對應(yīng)上面的文件 編寫 Mapper.xml 的 ResultMap映射代碼:

映射文件 OrderDao.xml

<!-- 獲取用戶訂單和商品詳情 --> <!-- Order --> <resultMap type="Order" id="findUserAndOrderDetail"> <id column="id" property="id"/> <result column="createTime" property="createTime"/> <!-- User user --> <association property="user" javaType="User"> <id column="userId" property="id"/><!-- 外鍵映射 --> <result column="name" property="name"/> <result column="address" property="address"/> </association> <!-- List<Order> orderItemList --> <collection property="orderItemList" ofType="OrderItem"> <id column="orderId" property="id"/><!-- 外鍵映射 --> <result column="number" property="number"/> <result column="note" property="note"/> <!-- goods --> <association property="goods" javaType="goods"> <id column="goodsId" property="id"/><!-- 外鍵映射 --> <result column="goodsName" property="name"/> <result column="price" property="price"/> </association> </collection> </resultMap><select id="findByName" resultMap="findUserAndOrderDetail"> select order.*, user.name,user.address orderItem.number goods.name goodsName,goods.price from user,order,orderItem,goods where user.id=order.userId and order.id = orderItem.orderId and goods.id = orderItem.goodsId </select>映射 List 時 使用 <collection oftype="包.對象"/>映射 對象時 使用 <association javaType="包.對象">外鍵關(guān)聯(lián) 使用<id column="goodsId" property="id"/>

接口

public interface OrderDao { public List<Orders> findOrderMapById()throws Exception;}名稱、方法名,返回值,返回類型 做到一致。OrderDao.xml == OrderDao.java (放在同一目錄下)public List<Orders> findOrderMapById()throws Exception;<resultMap type="Order" id="findUserAndOrderDetail">

4、junit測試代碼。

public void findOrderMapById() throws Exception { Sqlsession openSession = sqlSessionFactory.openSession(); OrderDao mapper = openSession.getMapper(OrderDao.class); List<Orders> Orders= mapper.findUserAndOrderDetail(); for(int i=0; i<Orders.size(); i++){ System.out.println(Orders.get(i)); } openSession.close(); }

下一章我們來做一個簡單的例子: 這里寫鏈接內(nèi)容


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特中旗| 亚东县| 南涧| 志丹县| 南和县| 北流市| 新晃| 沙湾县| 土默特左旗| 万宁市| 乐都县| 临汾市| 凉山| 昌都县| 周至县| 贺兰县| 垦利县| 平阳县| 时尚| 昭平县| 平陆县| 公安县| 乡城县| 邮箱| 酉阳| 昌黎县| 昌吉市| 娱乐| 浑源县| 文安县| 电白县| 松原市| 兴义市| 开化县| 汉中市| 喀喇| 墨脱县| 济阳县| 兴国县| 昌宁县| 荆门市|