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

首頁 > 學院 > 開發(fā)設計 > 正文

mybatis關(guān)聯(lián)查詢映射

2019-11-08 03:11:10
字體:
供稿:網(wǎng)友

xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace命名空間等于mapper接口地址 --><mapper namespace="com.mybatis.mapper.OrdersMapperCustom"> <!-- type:結(jié)果映射到com.mybatis.po.Orders中 --> <resultMap type="com.mybatis.po.Orders" id="OrdersUserResultMap"> <!-- 配置映射關(guān)系 --> <!-- id:指定查詢列中的唯 一標識,訂單信息的中的唯 一標識,如果有多個列組成唯一標識,配置多個id column:查詢結(jié)果列 PRoperty:對象屬性 --> <id column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 配置映射的關(guān)聯(lián)的用戶信息 --> <!-- association:用于映射關(guān)聯(lián)查詢單個對象的信息 多對1 property:要將關(guān)聯(lián)查詢的用戶信息映射到Orders中哪個屬性 --> <association property="user" javaType="com.mybatis.po.User"> <id column="user_id" property="id"/> <result column="username" property="username"/> <result column="sex" property="sex"/> <result column="address" property="address"/> </association> </resultMap> <!-- 訂單及訂單明細的resultMap 使用extends繼承,不用在中配置訂單信息和用戶信息的映射 --> <resultMap type="com.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap" extends="OrdersUserResultMap"> <!-- 使用extends繼承,不用在中配置訂單信息和用戶信息的映射 --> <!-- 訂單明細信息 一個訂單關(guān)聯(lián)查詢出了多條明細,要使用collection進行映射 collection:對關(guān)聯(lián)查詢到多條記錄映射到集合對象中 1對多 property:將關(guān)聯(lián)查詢到多條記錄映射到cn.itcast.mybatis.po.Orders哪個屬性 ofType:指定映射到list集合屬性中pojo的類型 --> <collection property="orderdetails" ofType="com.mybatis.po.Orderdetail"> <!-- id:訂單明細唯 一標識 property:要將訂單明細的唯 一標識 映射到com.mybatis.po.Orderdetail的哪個屬性 --> <id column="orderdetail_id" property="id"/> <result column="items_id" property="itemsId"/> <result column="items_num" property="itemsNum"/> <result column="orders_id" property="ordersId"/> </collection> </resultMap> <!-- 查詢用戶及購買的商品 --> <resultMap type="com.mybatis.po.User" id="UserAndItemsResultMap"> <!-- 用戶信息 --> <id column="user_id" property="id"/> <result column="username" property="username"/> <result column="sex" property="sex"/> <result column="address" property="address"/> <!-- 訂單信息 一個用戶對應多個訂單,使用collection映射 --> <collection property="ordersList" ofType="com.mybatis.po.Orders"> <id column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 訂單明細 一個訂單包括 多個明細 --> <collection property="orderdetails" ofType="com.mybatis.po.Orderdetail"> <id column="orderdetail_id" property="id"/> <result column="items_id" property="itemsId"/> <result column="items_num" property="itemsNum"/> <result column="orders_id" property="ordersId"/> <!-- 商品信息 一個訂單明細對應一個商品 --> <association property="items" javaType="com.mybatis.po.Items"> <id column="items_id" property="id"/> <result column="items_name" property="name"/> <result column="items_detail" property="detail"/> <result column="items_price" property="price"/> </association> </collection> </collection> </resultMap> <!-- 查詢訂單與關(guān)聯(lián)的用戶信息 多對1--> <select id="findOrdersUser" resultType="com.mybatis.po.OrdersCustom"> SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = user.id </select> <!-- 查詢訂單關(guān)聯(lián)查詢用戶信息,使用resultmap --> <select id="findOrdersUserResultMap" resultMap="OrdersUserResultMap"> SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = user.id </select> <!-- 查詢訂單關(guān)聯(lián)查詢用戶及訂單明細,使用resultmap --> <select id="findOrdersAndOrderDetailResultMap" resultMap="OrdersAndOrderDetailResultMap"> SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM orders, USER, orderdetail WHERE orders.user_id = user.id AND orderdetail.orders_id=orders.id </select> <!-- 查詢用戶及購買的商品信息,使用resultmap --> <select id="findUserAndItemsResultMap" resultMap="UserAndItemsResultMap"> SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id, items.name items_name, items.detail items_detail, items.price items_price FROM orders, USER, orderdetail, items WHERE orders.user_id = user.id AND orderdetail.orders_id=orders.id AND orderdetail.items_id = items.id </select> <!-- 延遲加載的resultMap --> <resultMap type="com.mybatis.po.Orders" id="OrdersUserLazyLoadingResultMap"> <!--對訂單信息進行映射配置 --> <id column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 實現(xiàn)對用戶信息進行延遲加載 select:指定延遲加載需要執(zhí)行的statement的id(是根據(jù)user_id查詢用戶信息的statement) 要使用userMapper.xml中findUserById完成根據(jù)用戶id(user_id)用戶信息的查詢,如果findUserById不在本mapper中需要前邊加namespace column:訂單信息中關(guān)聯(lián)用戶信息查詢的列,是user_id 關(guān)聯(lián)查詢的sql理解為: SELECT orders.*, (SELECT username FROM USER WHERE orders.user_id = user.id)username, (SELECT sex FROM USER WHERE orders.user_id = user.id)sex FROM orders --> <association property="user" javaType="com.mybatis.po.User" select="com.mybatis.mapper.UserMapper.findUserById" column="user_id"> <!-- 實現(xiàn)對用戶信息進行延遲加載 --> </association> </resultMap> <!-- 查詢訂單關(guān)聯(lián)查詢用戶,用戶信息需要延遲加載 --> <select id="findOrdersUserLazyLoading" resultMap="OrdersUserLazyLoadingResultMap"> SELECT * FROM orders </select></mapper>

mapper

OrdersMapperCustom.java

package com.mybatis.mapper;import java.util.List;import com.mybatis.po.Orders;import com.mybatis.po.OrdersCustom;import com.mybatis.po.User;public interface OrdersMapperCustom { //查詢訂單關(guān)聯(lián)查詢用戶信息 public List<OrdersCustom> findOrdersUser()throws Exception; //查詢訂單關(guān)聯(lián)查詢用戶使用resultMap public List<Orders> findOrdersUserResultMap()throws Exception; //查詢訂單(關(guān)聯(lián)用戶)及訂單明細 public List<Orders> findOrdersAndOrderDetailResultMap()throws Exception; //查詢用戶購買商品信息 public List<User> findUserAndItemsResultMap()throws Exception; //查詢訂單關(guān)聯(lián)查詢用戶,用戶信息是延遲加載 public List<Orders> findOrdersUserLazyLoading()throws Exception;}

po

OrdersCustom.java

package com.mybatis.po;//通過此類映射訂單和用戶查詢的結(jié)果,讓此類繼承包括 字段較多的pojo類public class OrdersCustom extends Orders{ private String username; private String sex; private String address; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}

Orders.java

package com.mybatis.po;import java.util.Date;import java.util.List;public class Orders { private Integer id; private Integer userId; private String number; private Date createtime; private String note; //用戶信息 private User user; //訂單明細 private List<Orderdetail> orderdetails; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number == null ? null : number.trim(); } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public String getNote() { return note; } public void setNote(String note) { this.note = note == null ? null : note.trim(); } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<Orderdetail> getOrderdetails() { return orderdetails; } public void setOrderdetails(List<Orderdetail> orderdetails) { this.orderdetails = orderdetails; }}

Orderdetail.java

package com.mybatis.po;public class Orderdetail { private Integer id; private Integer ordersId; private Integer itemsId; private Integer itemsNum; //明細對應的商品信息 private Items items; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getOrdersId() { return ordersId; } public void setOrdersId(Integer ordersId) { this.ordersId = ordersId; } public Integer getItemsId() { return itemsId; } public void setItemsId(Integer itemsId) { this.itemsId = itemsId; } public Integer getItemsNum() { return itemsNum; } public void setItemsNum(Integer itemsNum) { this.itemsNum = itemsNum; } public Items getItems() { return items; } public void setItems(Items items) { this.items = items; }}

Items.java

package com.mybatis.po;import java.util.Date;public class Items { private Integer id; private String name; private Float price; private String pic; private Date createtime; private String detail; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); } public Float getPrice() { return price; } public void setPrice(Float price) { this.price = price; } public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic == null ? null : pic.trim(); } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail == null ? null : detail.trim(); }}

User.java

package com.mybatis.po;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { //屬性名和數(shù)據(jù)庫表的字段對應 private int id; private String username;// 用戶姓名 private String sex;// 性別 private Date birthday;// 生日 private String address;// 地址 //用戶創(chuàng)建的訂單列表 private List<Orders> ordersList; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public List<Orders> getOrdersList() { return ordersList; } public void setOrdersList(List<Orders> ordersList) { this.ordersList = ordersList; }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑山县| 鲁山县| 梨树县| 大安市| 乡城县| 荣昌县| 九台市| 孝义市| 柞水县| 宁波市| 阿城市| 靖州| 富川| 岚皋县| 桃园市| 蒙山县| 久治县| 云浮市| 北流市| 桑日县| 赣榆县| 嘉义市| 朔州市| 湖南省| 迁安市| 锡林郭勒盟| 大方县| 阜宁县| 灯塔市| 墨竹工卡县| 盖州市| 温州市| 正宁县| 炎陵县| 华蓥市| 尚志市| 句容市| 淮北市| 安仁县| 五莲县| 突泉县|