成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

MyBatis一對多嵌套查詢的完整實例

瀏覽:99日期:2023-10-20 12:21:35

前言

嵌套查詢的實現原理為兩次查詢,比如產品表為主表,圖片表為從表通過product_id字段與產品表id字段關聯實現一對多,嵌套查詢 首先查詢 主表的數據 然后將主表id字段賦值給從表實體類中product_id 字段(productId)然后通過dao接口路徑映射找到對應的MyBatis XMl文件SQL語句ID如:com.liao.dao.DImgMapper.selectDImgByProductId 進行子查詢也就是第二次查詢。然后返回數據

數據庫建表語句和測試數據如下:

數據庫版本為 MySQL 8.0

產品表

DROP TABLE IF EXISTS `d_product`;CREATE TABLE `d_product` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ’產品ID’, `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT ’產品名稱’, `product_introduction` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT ’產品介紹’, `product_category` int(11) NULL DEFAULT NULL COMMENT ’產品ID’, `product_status` int(1) NULL DEFAULT NULL COMMENT ’產品狀態’, `create_time` datetime(0) NULL DEFAULT NULL COMMENT ’創建時間’, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = ’產品表’ ROW_FORMAT = Dynamic;INSERT INTO `d_product` VALUES (1, ’測試產品名稱修改’, ’測試產品介紹修改’, NULL, 1, ’2020-02-02 12:40:06’);INSERT INTO `d_product` VALUES (2, ’產品名稱’, ’產品介紹’, NULL, 1, ’2020-03-02 18:15:07’);INSERT INTO `d_product` VALUES (3, ’bbb’, ’bbb’, NULL, 1, ’2020-03-01 22:18:40’);

圖片表

DROP TABLE IF EXISTS `d_img`;CREATE TABLE `d_img` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ’id’, `product_id` int(11) NULL DEFAULT NULL COMMENT ’產品圖片ID’, `img` varchar(500) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT ’圖片’, `create_time` datetime(0) NULL DEFAULT NULL COMMENT ’創建時間’, PRIMARY KEY (`id`) USING BTREE, INDEX `product_id`(`product_id`) USING BTREE, CONSTRAINT `d_img_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `d_product` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 86 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = ’產品圖片’ ROW_FORMAT = Dynamic;INSERT INTO `d_img` VALUES (40, 1, ’1491803633034_683819.jpg’, ’2020-03-03 17:21:20’);INSERT INTO `d_img` VALUES (40, 1, ’1491803633034_683819.jpg’, ’2020-03-03 17:21:20’);INSERT INTO `d_img` VALUES (41, 1, ’1568950881751_702421.jpg’, ’2020-03-03 17:21:20’);

Java實體類:

// 將這個注解寫在類上之后,就會忽略類中不存在的字段,否則可能會報錯@JsonIgnoreProperties(value = {'handler'})/** * * TODO: 產品類 * @author LiAo * @date 2020/5/20 17:04 */public class DProduct { private Integer id; private String productName; private Integer productCategory; private Integer productStatus; private Date createTime; private String productIntroduction; private List<DImg> dImgs; // 用于存放圖片集合 // .. get set toString} /** * * TODO: 產品圖片類 * @author LiAo * @date 2020/5/20 17:05 */@JsonIgnoreProperties(value = {'handler'})public class DImg { private Integer id; private Integer productId; private String img; private Date createTime; // .. get set toString}

實體類創建好后要編寫Dao接口 和Mapper XML了

持久層接口DAO:

/** * * TODO: 產品 Dao接口 * @author LiAo * @date 2020/5/20 17:08 */public interface DProductMapper { /** * 產品圖片一對多嵌套 * @param record 查詢條件 * @return 返回參數 */ List<DProduct> productSelect(DProduct record);}

產品MyBatis xml:

<!--映射的Dao接口類 可以通過這個路徑找到先關的SQL語句和resultMap 映射--><mapper namespace='com.liao.dao.DProductMapper'> <resultMap type='com.liao.entity.DProduct'> <id column='id' property='id' jdbcType='INTEGER'/> <result column='product_name' property='productName' jdbcType='VARCHAR'/> <result column='product_category' property='productCategory' jdbcType='INTEGER'/> <result column='product_status' property='productStatus' jdbcType='INTEGER'/> <result column='create_time' property='createTime' jdbcType='TIMESTAMP'/> <result column='product_introduction' property='productIntroduction' jdbcType='LONGVARCHAR'/> </resultMap> <!--產品圖片一對多查詢映射--> <!--id:配置映射的名稱--> <!--type:返回值類型 --> <!--extends:繼承id為BaseResultMap的映射 --> <!--select:子查詢所在的XML綁定的DAO接口路徑.SQL語句id --> <!--column='{productId = id} productId:從表關聯主表的實體類屬性,作為子查詢的條件 id:主表中被關聯的數據庫字段--> <resultMap type='com.liao.entity.DProduct' extends='BaseResultMap'> <collection property='dImgs' fetchType='lazy' select='com.liao.dao.DImgMapper.selectDImgByProductId' column='{productId = id}'/> </resultMap> <!--查詢語句--> <select parameterType='com.liao.entity.DProduct' resultMap='dProductListMapSelect'> select d.id, d.product_name, d.product_category, d.product_status, d.create_time, d.product_introduction from d_product d where 1 = 1 <!-- 使用if標簽拼接條件語句 實現動態SQL--> <if test='id != null and id != ’’'> and d.id = #{id} </if> <if test='productName != null and productName != ’’'> and d.product_name like concat(#{productName},’%’) </if> <if test='productStatus != null and productStatus != ’’'> and d.product_status = #{productStatus} </if> <if test='createTime != null and createTime != ’’'> and d.create_time like concat(#{createTime},’%’) </if> <if test='productIntroduction != null and productIntroduction != ’’'> and d.product_introduction like concat(#{productIntroduction},’%’) </if></select></mapper>

圖片MyBatis xml:

<mapper namespace='com.liao.dao.DImgMapper'> <resultMap type='com.liao.entity.DImg'> <id column='did' property='id' jdbcType='INTEGER'/> <result column='product_id' property='productId' jdbcType='INTEGER'/> <result column='img' property='img' jdbcType='VARCHAR'/> <result column='create_time' property='createTime' jdbcType='TIMESTAMP'/> </resultMap> <!--一對多嵌套查詢 子查詢語句--> <select resultMap='BaseResultMap'> select i.id as did, i.product_id, i.img, i.create_time from d_img i where i.product_id = #{productId} </select></mapper>

測試查詢結果

查詢結果為一個產品對象里有若干個產品圖片對象。

{ 'id': 18, 'productName': '產品添加圖片上傳測試', 'productCategory': null, 'productStatus': 1, 'createTime': '2020-04-14T13:40:40.000+0000', 'productIntroduction': '產品添加圖片上傳測試', 'dImgs': [ { 'id': 92, 'productId': 18, 'img': '01.jpg', 'createTime': '2020-04-26T02:33:04.000+0000' }, { 'id': 93, 'productId': 18, 'img': '1554103835292_610234.jpg', 'createTime': '2020-04-26T02:33:04.000+0000' }, { 'id': 94, 'productId': 18, 'img': '1555484699771_582172.jpg', 'createTime': '2020-04-26T02:33:04.000+0000' }, { 'id': 95, 'productId': 18, 'img': '1554103835292_610234.jpg', 'createTime': '2020-04-26T02:33:04.000+0000' } ] },

總結

到此這篇關于MyBatis一對多嵌套查詢的文章就介紹到這了,更多相關MyBatis一對多嵌套查詢內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲大片在线| 亚洲精品乱码| 99视频精品免费观看| 国产午夜精品久久久久久久| 国产成人精品影视| 欧美三级电影一区| 日本欧美在线观看| 久久久久网址| 亚洲尤物视频在线| 日韩一级不卡| 中文子幕无线码一区tr| 97久久精品人人做人人爽50路| 6080国产精品一区二区| 精品系列免费在线观看| 欧美日韩另类一区| 九色|91porny| 欧美精品1区2区3区| 久久丁香综合五月国产三级网站| 久久蜜桃资源一区二区老牛| 亚洲国产综合在线| 国产精品视频免费观看| 亚洲午夜久久久久| 国产九区一区在线| 五月天激情小说综合| 久久国产精品一区二区三区 | 综合色中文字幕| 亚洲网站在线| 亚洲欧美日韩国产中文在线| 影音先锋久久| 依依成人综合视频| 欧美一区=区| 日日夜夜免费精品| 欧洲精品视频在线观看| 蜜臀久久99精品久久久画质超高清 | 国产久一道中文一区| 亚洲人快播电影网| 国产一区二区高清不卡| 午夜影院久久久| 色偷偷88欧美精品久久久| 另类调教123区| 91麻豆精品国产91久久久久久| 国产传媒欧美日韩成人| 久久伊人蜜桃av一区二区| 欧美一区二区三区久久精品| 国产精品久久久久久久蜜臀| 亚洲人体一区| 天天av天天翘天天综合网| 欧美午夜寂寞影院| 国产成人福利片| 久久久精品免费免费| 国内激情久久| 亚洲成人av一区二区| 色就色 综合激情| 懂色av一区二区三区免费观看| 国产亚洲欧美色| 一区二区免费在线视频| 久久精品久久久精品美女| 日韩久久免费av| 亚洲视频久久| 日本不卡中文字幕| 欧美一级艳片视频免费观看| 欧美福利电影在线观看| 亚洲视频一二三区| 久久综合亚州| 国产精品一二三四五| 久久久美女艺术照精彩视频福利播放| 影音先锋久久| 久久国产精品免费| 久久这里只精品最新地址| 亚洲精品社区| 久久精品国产亚洲一区二区三区 | 日韩欧美另类在线| 欧美高清不卡| 亚洲国产一区二区视频| 欧美乱熟臀69xxxxxx| 欧美国内亚洲| 日日夜夜精品视频免费| 欧美不卡在线视频| 在线欧美不卡| 久久66热re国产| 久久久综合九色合综国产精品| 国产亚洲激情| 高清在线成人网| 一区二区三区欧美| 91精选在线观看| 欧美大片一区| 蜜臀精品一区二区三区在线观看| 国产亚洲一本大道中文在线| 久久精品九九| 91在线无精精品入口| 亚洲成va人在线观看| 日韩精品在线一区| 国产精品尤物| 99久久精品免费看| 亚洲成av人片| 久久美女艺术照精彩视频福利播放 | 韩国v欧美v日本v亚洲v| 1024精品合集| 5566中文字幕一区二区电影 | 国产精品对白刺激久久久| 日韩高清国产一区在线| 久久婷婷国产综合精品青草 | 久久久青草青青国产亚洲免观| 美女精品网站| 欧美一区2区三区4区公司二百| 日本欧美加勒比视频| 国产午夜亚洲精品午夜鲁丝片 | 成人av第一页| 视频一区二区国产| 国产精品嫩草影院av蜜臀| 欧美日韩免费视频| 精品成人在线| 丰满白嫩尤物一区二区| 亚洲国产精品欧美一二99| 精品电影一区二区三区| 久久精品男女| 国产精品v亚洲精品v日韩精品| 九九九精品视频| 一区二区三区不卡视频| 久久嫩草精品久久久久| 欧美日韩综合色| 国产视频一区欧美| 99re免费视频精品全部| 黑人巨大精品欧美一区| 一区二区三区欧美日韩| 国产午夜亚洲精品理论片色戒| 欧美片在线播放| 国产日韩一区二区三区| 欧美激情1区2区3区| 国产69精品久久99不卡| 三级欧美在线一区| 一区二区三区欧美日| 国产欧美va欧美不卡在线| 欧美裸体bbwbbwbbw| 欧美综合国产| 狠狠色丁香久久综合频道 | 粉嫩av一区二区三区| 日本午夜精品一区二区三区电影| 中文字幕中文乱码欧美一区二区| 日韩一级片在线观看| 久久久综合香蕉尹人综合网| 亚洲黑丝在线| 91网页版在线| 亚洲超碰精品一区二区| 国产精品三级视频| 精品伦理精品一区| 欧美日韩国产首页| 一本久久精品一区二区| 国产日韩精品一区观看| 韩日欧美一区| 国产精品videosex极品| 午夜精品电影| 97精品视频在线观看自产线路二| 国产九九视频一区二区三区| 色婷婷综合久久久| 一区二区精品在线观看| 一区一区视频| 欧美日韩少妇| 91亚洲精品乱码久久久久久蜜桃| 国产精品1区2区| 蜜桃久久av一区| 日韩国产高清影视| 亚洲电影视频在线| 一区二区三区免费看视频| 亚洲欧洲精品成人久久奇米网| 国产视频一区在线观看| 日韩精品一区二区三区视频| 欧美一区二区三区在线视频| 色拍拍在线精品视频8848| 一区二区冒白浆视频| 亚洲黄色视屏| 91蜜桃免费观看视频| 99在线精品视频| 丁香激情综合国产| 国产成人免费在线视频| 久久国产尿小便嘘嘘尿| 日韩电影网1区2区| 青青草国产成人av片免费| 日韩国产在线观看| 免费在线观看日韩欧美| 老司机午夜精品| 久久成人18免费观看| 狠狠色丁香久久婷婷综合_中 | 亚洲欧洲精品天堂一级| 亚洲色图在线视频| 亚洲人成伊人成综合网小说| 国产精品久久三| 亚洲男同性恋视频| 亚洲主播在线播放| 午夜久久久影院| 日韩高清在线不卡| 老色鬼精品视频在线观看播放| 蜜臀av性久久久久蜜臀aⅴ| 日韩成人精品在线| 激情文学综合丁香| 国产麻豆成人传媒免费观看| 国产精品一区一区| 高清beeg欧美| aaa欧美日韩| 欧美在线一二三区|