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

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

mybatis延遲加載

2019-11-11 05:43:05
字體:
來源:轉載
供稿:網友

問題出現

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

延遲加載的實現

使用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
91色中文字幕| 最新的欧美黄色| 91在线|亚洲| 日韩专区在线播放| 亚洲最大激情中文字幕| 奇米一区二区三区四区久久| 亚洲福利视频网| 日韩高清电影免费观看完整| 亚洲国产成人精品久久久国产成人一区| 亚洲一区二区三区在线视频| 福利一区视频在线观看| 久久影视电视剧免费网站清宫辞电视| 久久这里有精品视频| 国产精品自产拍高潮在线观看| 亚洲女人天堂网| 91av在线播放视频| 成人女保姆的销魂服务| 久久大大胆人体| 国产日韩在线亚洲字幕中文| 78m国产成人精品视频| 国产精品香蕉国产| 亚洲精品福利在线| 国产精品美女无圣光视频| 国产精品久久久久久久av电影| 国产亚洲视频中文字幕视频| 国产日韩欧美在线| 国产91免费观看| 亚洲国产精品一区二区三区| 久久躁日日躁aaaaxxxx| 最新国产精品拍自在线播放| 国产一区二区三区视频在线观看| 国产精品久久久久不卡| 国产免费久久av| 欧美亚州一区二区三区| 成人有码在线播放| 青青久久av北条麻妃黑人| 精品久久国产精品| 日韩av在线电影网| 精品福利樱桃av导航| 久久免费视频网| 成人网在线免费观看| 亚洲aa在线观看| 亚洲日本欧美中文幕| 亚洲精品电影久久久| 亚洲欧美中文字幕在线一区| 久久久久久午夜| 日日摸夜夜添一区| 亚洲欧美日韩在线高清直播| 亚洲国产欧美一区二区三区久久| 欧美高清视频免费观看| 亚洲色图av在线| 日韩中文综合网| 欧美放荡办公室videos4k| 国产欧美一区二区三区四区| 97国产在线观看| 精品香蕉在线观看视频一| 国产日本欧美一区二区三区| 最近中文字幕日韩精品| 精品一区二区三区电影| 国内伊人久久久久久网站视频| 中文字幕免费精品一区高清| 国外成人在线视频| 国产深夜精品福利| 中文在线资源观看视频网站免费不卡| 欧美午夜女人视频在线| 国内久久久精品| 亚洲精品自产拍| 综合网日日天干夜夜久久| 57pao国产成人免费| 欧美最顶级丰满的aⅴ艳星| 亚洲色图色老头| 日韩高清不卡av| 亚洲国产天堂久久国产91| 国产色综合天天综合网| 精品爽片免费看久久| 国产成人精品在线| 伊人伊成久久人综合网小说| 国产成人精品免费久久久久| 国产一区二区欧美日韩| 亚洲人成在线观看网站高清| 国产精品国内视频| 精品久久国产精品| www.亚洲天堂| 91久久久久久久久久久久久| 91久久嫩草影院一区二区| 国产www精品| 亚洲精品久久久久久久久| 亚洲午夜久久久影院| 国产免费一区视频观看免费| 欧美日韩一区二区三区| 久久国产色av| 国产在线观看91精品一区| 欧美激情一区二区三区高清视频| 国产精品久久久久av免费| 91av网站在线播放| 日韩av在线网页| 亚洲欧洲xxxx| 国产一区私人高清影院| 久久99青青精品免费观看| 亚洲欧洲一区二区三区在线观看| 日韩欧美大尺度| www.美女亚洲精品| 成人亚洲欧美一区二区三区| 成人av.网址在线网站| 日韩在线www| 日韩欧美aaa| 国产精品女主播视频| 国产成人精品在线观看| 亚洲欧美日本另类| 欧洲成人免费aa| 91九色国产在线| 日韩av在线资源| 亚洲国产精品国自产拍av秋霞| 国产精品影片在线观看| 欧美激情a∨在线视频播放| 国内伊人久久久久久网站视频| 欧美亚洲视频一区二区| 亚洲精品国产精品国自产观看浪潮| 伦伦影院午夜日韩欧美限制| 欧美日韩成人精品| 在线观看欧美www| 98精品国产高清在线xxxx天堂| 欧美多人乱p欧美4p久久| 欧美日韩美女视频| 欧美日韩一区二区免费视频| 亚洲人永久免费| 97成人精品区在线播放| 国产热re99久久6国产精品| 国产精品久久久久久久久影视| 视频在线观看一区二区| 一本大道亚洲视频| 日韩av在线导航| 亚洲综合在线做性| 欧美老肥婆性猛交视频| 68精品国产免费久久久久久婷婷| 亚洲免费精彩视频| 国产亚洲欧美日韩精品| 精品久久香蕉国产线看观看gif| 亚洲国产成人久久综合一区| 日韩免费观看在线观看| 性色av香蕉一区二区| 欧亚精品中文字幕| 91精品国产电影| 久久免费国产视频| 欧美综合在线第二页| 午夜精品久久久久久99热软件| 亚洲精品不卡在线| 日韩视频免费大全中文字幕| 亚洲人成欧美中文字幕| 精品综合久久久久久97| 国产97在线|亚洲| 亚洲电影免费观看高清完整版在线观看| 66m—66摸成人免费视频| 在线成人激情黄色| 亚洲va国产va天堂va久久| 国产精品专区第二| 精品国产精品三级精品av网址| 欧美激情在线有限公司| 亚洲精品97久久| 欧美老女人性视频| 国产日韩专区在线| 91伊人影院在线播放| 草民午夜欧美限制a级福利片| 欧美猛交免费看|