亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

mybatis延遲加載

2019-11-11 06:21:18
字體:
來源:轉載
供稿:網友

問題出現

由于多表查詢相對于單表查詢是非常消耗時間的,所以就出現了延遲加載的方法,首先延遲加載,先從單表開始查詢,在查詢對應多表的數據,單表查詢速度比多表查詢塊,所以延遲加載是可以提升數據查詢速度。

延遲加載的實現

使用resultMap實現高級映射,也就是使用association或者collection

實現延遲加載需要開啟mybatis延遲加載的開關,和關閉積極加載(也就是按需加載)lazyLoadingEnable:延遲加載開關,默認關閉,所以想要延遲加載必須開啟。aggressiveLazyLoading:積極加載,默認開啟,所以需要關閉,關閉后就是按需求來進行加載。

Mybatis配置文件加入

<settings>	<!-- 打開延遲加載開關 -->	<setting name="lazyLoadingEnabled" value="true"/>	<!-- 關閉積極加載,就是按需加載 -->	<setting name="aggressiveLazyLoading" value="false"/></settings>

代碼實例

UserVo.java就是我們需要獲取的user信息和food信息,直接查詢必然會出現多表查詢這里我們具體實現就是先加載user信息,而food信息進行延遲加載

package com.my.shiro.Entity;public class UserVo {		PRivate static final long serialVersionUID = 1L;	private String username;	private String passWord;	private String permission;		private Food food;	public String getUsername() {		return username;	}	public void setUsername(String username) {		this.username = username;	}	public String getPassword() {		return password;	}	public void setPassword(String password) {		this.password = password;	}	public String getPermission() {		return permission;	}	public void setPermission(String permission) {		this.permission = permission;	}	public Food getFood() {		return food;	}	public void setFood(Food food) {		this.food = food;	}	public static long getSerialversionuid() {		return serialVersionUID;	}	}

UserMapper.xml   resultMap實現延遲加載需要的配置

<resultMap id="LazyLoading" type="com.my.shiro.Entity.UserVo" >	    <id column="username" property="username" jdbcType="VARCHAR" />	    <result column="password" property="password" jdbcType="VARCHAR" />		<result column="permission" property="permission" jdbcType="VARCHAR" />				<!-- 用于延遲加載 			select中的statement的id:比如findpassword,如果不在同一個mapper中就應該加上全限定名			colum關聯信息 -->		<association property="food" javaType="com.my.shiro.Entity.Food" 			select="com.my.shiro.Dao.FoodMapper.findFoodByUsername" 			column="username">		</association>		<!-- <collection property=""></collection> -->	</resultMap>  這里使用association實現延遲加載這里主要有4的屬性

property:這里的這個屬性對應的是UserVo中的foodjavaType:延遲加載數據類型select:延遲加載需要使用的方法對應的statement的id也就一個sql方法對應的id,這里需要注意的是如果這個sql不再該mapper.xml中那么需要加上這個sql的namespacecolum:關聯信息,也就是我們通常多表關聯的信息

resultMap的使用

<select id="findUserAndFood" resultMap="LazyLoading">		select * from user;	</select>這里先會執行select * from user 查詢到信息,再通過resultMap中配置的association來執行findFoodByUsername對應的sql,從而實現延遲加載findFoodByUsername

<select id="findFoodByUsername" parameterType="java.lang.String" resultType="com.my.shiro.Entity.Food">		select * 		from food 		where username = #{username}	</select>

這里的parameter可以看做resultMap中的association中的colum對應的值,也就是關聯屬性在這里我遇到一個問題就是當parametreType為sting的時候不可以寫成下面的格式

<where>	 <if test="username != null and username != ''">	    	and username = #{username}	 </if></where>

其實上面sql可以看作,這里避免了多表之間的查詢

select username,password,(select price from food where username = user.username)price,(select name from food where username = user.username)namefrom user至于collection使用法大體上是相似的


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产久精国产一老狼| 欧美日韩一区二区三区在线免费观看| 午夜精品一区二区三区视频免费看| 69久久夜色精品国产69乱青草| 97久久精品在线| 日韩中文字幕第一页| 国产欧美一区二区白浆黑人| 日韩一区二区精品视频| 亚洲人成77777在线观看网| 国产精品视频公开费视频| 欧美日韩亚洲精品内裤| 亚洲精品久久久久| 日韩av成人在线观看| 中文字幕欧美日韩va免费视频| 欧美日韩综合视频网址| 777午夜精品福利在线观看| 久久视频国产精品免费视频在线| 亚洲人成网站免费播放| 尤物精品国产第一福利三区| 欧美精品一本久久男人的天堂| 伊人一区二区三区久久精品| 精品国产一区二区三区久久久狼| 日韩一区二区在线视频| 亚洲精品中文字| 亚洲天天在线日亚洲洲精| 狠狠久久五月精品中文字幕| 国产精品www| 亚洲第一网站男人都懂| 国产精品久久久久91| 欧美日韩国内自拍| 国产美女久久精品香蕉69| 美女福利视频一区| 精品国产视频在线| 性金发美女69hd大尺寸| 国产精品国内视频| 日韩亚洲成人av在线| 国产精品中文字幕在线观看| 亚洲精品电影在线| 国产成人久久久精品一区| 在线免费观看羞羞视频一区二区| 久久久久久久久亚洲| 在线色欧美三级视频| 亚洲欧美日韩第一区| 欧洲日韩成人av| 91久久在线视频| 欧美精品在线第一页| 亚洲人永久免费| 不卡av电影院| 亚洲一区二区在线播放| xxxx性欧美| 国产一区二区美女视频| 亚洲欧美三级伦理| 国产噜噜噜噜噜久久久久久久久| 国产精品老女人精品视频| 国产日韩精品入口| 亚洲亚裔videos黑人hd| 日韩av电影在线网| 国产精品自产拍在线观看| 中文字幕日韩在线观看| 亚洲人成电影网| 亚洲伊人一本大道中文字幕| 亚洲精品久久久久中文字幕欢迎你| 中文字幕欧美精品日韩中文字幕| 在线视频欧美日韩| 欧美激情第1页| 国产不卡在线观看| 91国内精品久久| 久久精品国产69国产精品亚洲| 国产精品视频一| 国产精品网站大全| 亚洲尤物视频网| 欧美老女人bb| 国产精品伦子伦免费视频| 亚洲精品国产精品久久清纯直播| 在线日韩欧美视频| 国产精品久久久av| 国产一区二区欧美日韩| 青青草原一区二区| 久久男人av资源网站| 日韩电影大片中文字幕| 国产免费一区视频观看免费| 亚洲bt天天射| 成人在线小视频| 中文字幕日韩av综合精品| 国产a∨精品一区二区三区不卡| 日韩av片永久免费网站| 久久男人av资源网站| 亚洲va码欧洲m码| 国产精品高清网站| 久久6免费高清热精品| 亚洲xxxx做受欧美| 国产精品igao视频| 91成人性视频| 色综合91久久精品中文字幕| 欧美在线xxx| 国产伦精品一区二区三区精品视频| 国产69精品久久久久9| 免费91在线视频| 91久久精品久久国产性色也91| 国产精品99久久久久久久久久久久| 亚洲国产天堂久久综合网| 狠狠操狠狠色综合网| 91精品国产乱码久久久久久久久| 亚洲乱码国产乱码精品精| 国产91露脸中文字幕在线| 久久成人综合视频| 欧美日韩国产精品专区| 日韩av在线导航| 亚洲第一精品夜夜躁人人爽| 超碰日本道色综合久久综合| 亚洲free性xxxx护士白浆| 亚洲自拍高清视频网站| 国内精品免费午夜毛片| 久久久噜久噜久久综合| 精品国产老师黑色丝袜高跟鞋| 国产精品免费一区二区三区都可以| 国产精品美女久久久久av超清| 亚洲欧美另类人妖| 亚洲第一免费网站| 欧美自拍视频在线| 日本欧美在线视频| 国产精品啪视频| 日本成人在线视频网址| 久久在线免费观看视频| 精品久久久久久久久中文字幕| 亚洲天堂网站在线观看视频| 在线视频一区二区| 国产一区二区三区视频在线观看| 国产精彩精品视频| 色偷偷偷综合中文字幕;dd| 中文在线资源观看视频网站免费不卡| 欧美一区二区视频97| 日韩欧美在线观看视频| 精品美女久久久久久免费| 国产成人精品免高潮费视频| 国产成人一区三区| 亚洲二区中文字幕| 国产午夜精品全部视频播放| 亚洲精品网址在线观看| 米奇精品一区二区三区在线观看| 欧美激情奇米色| 亚洲天堂成人在线视频| 最近2019中文字幕大全第二页| 黑人狂躁日本妞一区二区三区| 日韩在线中文字幕| 成人性生交大片免费观看嘿嘿视频| 国产一区二区欧美日韩| 久久伊人精品天天| 51色欧美片视频在线观看| 成人福利网站在线观看11| 亚洲综合日韩中文字幕v在线| 色999日韩欧美国产| 亚洲综合中文字幕68页| 91爱视频在线| 91精品国产91久久久久久最新| 国内精品小视频在线观看| 美日韩在线视频| 在线电影av不卡网址| 日韩小视频在线| 91精品国产电影| 久久久久久69| 亚洲xxxx在线| 国产精品视频久久久久| 欧美成人激情视频免费观看|