中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站設(shè)計(jì)制作公司地址網(wǎng)推項(xiàng)目接單平臺(tái)

網(wǎng)站設(shè)計(jì)制作公司地址,網(wǎng)推項(xiàng)目接單平臺(tái),公司部門管理制度,廣東順德網(wǎng)站建設(shè)目錄 項(xiàng)目場(chǎng)景: 實(shí)戰(zhàn)操作: 1.創(chuàng)建菜單表 2.創(chuàng)建實(shí)體 3.創(chuàng)建Mapper 4.創(chuàng)建xml 屬性描述: 效率比較: 項(xiàng)目場(chǎng)景: 本文說(shuō)明了Spring BootMyBatis使用collection標(biāo)簽的兩種使用方法 1. 方法一: 關(guān)聯(lián)查詢 2. 方法…

目錄

項(xiàng)目場(chǎng)景:

實(shí)戰(zhàn)操作:

1.創(chuàng)建菜單表

2.創(chuàng)建實(shí)體?

3.創(chuàng)建Mapper

4.創(chuàng)建xml?

屬性描述:

效率比較:


項(xiàng)目場(chǎng)景:

本文說(shuō)明了Spring Boot+MyBatis使用collection標(biāo)簽的兩種使用方法

1. 方法一: 關(guān)聯(lián)查詢
2. 方法二: 嵌套select查詢


實(shí)戰(zhàn)操作:

1.創(chuàng)建菜單表

這里只創(chuàng)建一張表,樹(shù)結(jié)構(gòu)只有兩級(jí),方便學(xué)習(xí),多表關(guān)聯(lián)是同樣的道理

-- ----------------------------
-- Table structure for menu
-- ----------------------------
DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` ?(`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名稱',`pid` int(3) NULL DEFAULT NULL COMMENT '0代表父級(jí)',`order` int(3) NULL DEFAULT NULL COMMENT '排序',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of menu
-- ----------------------------
INSERT INTO `menu` VALUES (1, '審核', 0, 1);
INSERT INTO `menu` VALUES (2, '欄目管理', 0, 2);
INSERT INTO `menu` VALUES (3, '應(yīng)用審核', 1, 1);
INSERT INTO `menu` VALUES (4, '服務(wù)審核', 1, 2);
INSERT INTO `menu` VALUES (5, '角色管理', 2, 1);

2.創(chuàng)建實(shí)體?

package com.test.entity;import lombok.Data;
import java.util.List;@Data
public class Menu {private Integer id;private String name;private Integer pid;private Integer order;private List<Menu> menus;}

3.創(chuàng)建Mapper

package com.test.dao;import com.test.entity.Menu;
import java.util.List;public interface TestMapper{//關(guān)聯(lián)查詢List<Menu> selectMenu();//嵌套查詢List<Menu> selectNestedMenu();
}

4.創(chuàng)建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" >
<mapper namespace="com.test.dao.TestMapper"><!-- 公共字段 --><resultMap id="BaseResultMap" type="com.test.entity.Menu"><result column="id" property="id"/><result column="name" property="name"/><result column="pid" property="pid"/><result column="order" property="order"/></resultMap><!-- 方式一、關(guān)聯(lián)查詢:執(zhí)行一次sql --><!-- 定義resultMap --><resultMap id="MenuResultMap" extends="BaseResultMap" type="com.test.entity.Menu"><!-- 關(guān)聯(lián)集合映射,columnPrefix前綴,用于區(qū)分相同字段 --><collection ofType="com.test.entity.Menu" resultMap="BaseResultMap" property="menus" columnPrefix="menu_"></collection></resultMap><!-- 查詢語(yǔ)句 --><select id="selectMenu" resultMap="MenuResultMap">select r.id ,r.name ,r.pid ,r.order ,r1.id AS menu_id ,r1.name AS menu_name ,r1.pid AS menu_pid,r1.order AS menu_orderFROM menu rLEFT JOIN menu r1 ON r.id = r1.pidwhere r.pid=0order by r.order,r1.order</select><!-- 方式二、嵌套查詢:會(huì)執(zhí)行多次sql --><!-- 定義resultMap --><resultMap id="NestedResultMap" extends="BaseResultMap" type="com.test.entity.Menu"><!-- 嵌套查詢集合映射 --><collection property="menus" column="id" select="selectChildMenu"/></resultMap><!-- 查詢所有父級(jí)語(yǔ)句 --><select id="selectNestedMenu" resultMap="NestedResultMap">select r.id ,r.name ,r.pid ,r.orderFROM menu rwhere r.pid=0order by r.order</select><!-- 查詢下級(jí) --><select id="selectChildMenu" resultMap="BaseResultMap">select r.id ,r.name ,r.pid ,r.orderFROM menu rwhere r.pid=#{id}order by r.order</select></mapper>

屬性描述:

屬性描述
property屬性名:映射實(shí)體類屬性名
ofType映射集合的類型(指定一對(duì)多的集合里面元素的類型)
column映射數(shù)據(jù)庫(kù)字段名,傳多個(gè) {“屬性名”=“參數(shù)”,“屬性名”=“參數(shù)”}
select用于加載復(fù)雜類型屬性的映射語(yǔ)句的ID(它會(huì)從column 屬性指定的列中檢索數(shù)據(jù),作為參數(shù)傳遞給目標(biāo) select 語(yǔ)句)
columnPrefix給關(guān)聯(lián)的數(shù)據(jù)庫(kù)中的 column 添加一個(gè)前綴(如果不添加前綴,當(dāng) 兩個(gè)表同時(shí)有 id 字段,查詢結(jié)果時(shí)一定會(huì)產(chǎn)生覆蓋,使得兩個(gè) id 的值一樣)

效率比較:

方法一(關(guān)聯(lián)查詢):只需要執(zhí)行一次sql語(yǔ)句。
方法二(嵌套select查詢):需要執(zhí)行多次sql語(yǔ)句。
? ? ?
方法一比方法二的效率要高,但是在使用的時(shí)候,方法二的代碼可重用性要高

比如:這里用的是菜單表,數(shù)據(jù)量不會(huì)太大,可以選擇方法二(嵌套select查詢)

源碼:?https://download.csdn.net/download/u011974797/88305627

http://www.risenshineclean.com/news/35681.html

相關(guān)文章:

  • 懷來(lái)縣建設(shè)局網(wǎng)站seo綜合查詢 站長(zhǎng)工具
  • 搜索引擎收錄提交優(yōu)化營(yíng)商環(huán)境條例
  • 蘇州園區(qū)房?jī)r(jià)狼雨seo網(wǎng)站
  • 主機(jī)銷售網(wǎng)站源碼網(wǎng)絡(luò)營(yíng)銷做得比較成功的案例
  • 有個(gè)音樂(lè)網(wǎng)站老板做淫穢直播被抓如何讓百度快速收錄
  • wordpress建站哪里好百度指數(shù)移動(dòng)版app
  • php網(wǎng)站建設(shè)的基本流程圖中山360推廣
  • 河源網(wǎng)站設(shè)計(jì)短視頻營(yíng)銷推廣方案
  • 長(zhǎng)春網(wǎng)站建設(shè)及推廣免費(fèi)seo網(wǎng)站推廣在線觀看
  • 深圳市官網(wǎng)網(wǎng)站建設(shè)報(bào)價(jià)注冊(cè)網(wǎng)站流程和費(fèi)用
  • 網(wǎng)站備案流程實(shí)名認(rèn)證東莞網(wǎng)站制作外包
  • Linux主機(jī)設(shè)置網(wǎng)站首頁(yè)計(jì)算機(jī)培訓(xùn)課程
  • 延慶b2c網(wǎng)站制作價(jià)格百度推廣售后
  • 建立網(wǎng)站如何推廣東莞優(yōu)化疫情防控措施
  • 商丘做網(wǎng)站需要多少錢企業(yè)seo案例
  • 手機(jī)高端網(wǎng)站開(kāi)發(fā)企業(yè)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)論文
  • 做網(wǎng)站 (公司)如何做好平臺(tái)推廣
  • 做外貿(mào)怎樣免費(fèi)登錄外國(guó)網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)首頁(yè)制作
  • 網(wǎng)站數(shù)據(jù)庫(kù)連接失敗百度識(shí)圖在線識(shí)別
  • 做教程的網(wǎng)站內(nèi)容怎么找百度統(tǒng)計(jì)收費(fèi)嗎
  • 汕頭個(gè)人建站模板seo排名優(yōu)化技術(shù)
  • 網(wǎng)站制作用的軟件上海網(wǎng)絡(luò)營(yíng)銷上海網(wǎng)絡(luò)推廣
  • 1688域名網(wǎng)站近三天時(shí)政熱點(diǎn)
  • 青島百度seoseo網(wǎng)站地圖
  • wordpress不能啟動(dòng)怎么解決西安百度快照優(yōu)化
  • 電商網(wǎng)站如何備案google付費(fèi)推廣
  • 現(xiàn)在網(wǎng)絡(luò)推廣方式衡陽(yáng)百度seo
  • 宜昌市水利建設(shè)工程協(xié)會(huì)網(wǎng)站軟文營(yíng)銷文章300字
  • b2b是什么網(wǎng)站新網(wǎng)站如何推廣
  • 研學(xué)網(wǎng)站平臺(tái)建設(shè)方案市場(chǎng)調(diào)研方法有哪些