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

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

山東建設(shè)網(wǎng)站首頁(yè)建網(wǎng)站多少錢(qián)

山東建設(shè)網(wǎng)站首頁(yè),建網(wǎng)站多少錢(qián),網(wǎng)紅營(yíng)銷的弊端,營(yíng)銷型外貿(mào)網(wǎng)站建設(shè)軟件文章目錄 MyBatis中延遲加載,全局和局部的開(kāi)啟使用與關(guān)閉1、問(wèn)題提出2、延遲加載和立即加載延遲加載立即加載 3、三種對(duì)應(yīng)的表關(guān)系中的加載4、打開(kāi)全局延遲加載(實(shí)現(xiàn)一對(duì)一的延遲加載)5、實(shí)現(xiàn)一對(duì)多的延遲加載(將上面設(shè)置的全局延…

文章目錄

  • MyBatis中延遲加載,全局和局部的開(kāi)啟使用與關(guān)閉
    • 1、問(wèn)題提出
    • 2、延遲加載和立即加載
      • 延遲加載
      • 立即加載
    • 3、三種對(duì)應(yīng)的表關(guān)系中的加載
    • 4、打開(kāi)全局延遲加載(實(shí)現(xiàn)一對(duì)一的延遲加載)
    • 5、實(shí)現(xiàn)一對(duì)多的延遲加載(將上面設(shè)置的全局延遲加載給注釋掉)
      • 編寫(xiě)UserMapper.xml
      • 在UserMapper.xml中添加select查詢語(yǔ)句
      • 在UserMapper.java中添加屬性
      • 編寫(xiě)測(cè)試類
      • 延遲加載運(yùn)行結(jié)果如下:
    • 6、測(cè)試一對(duì)多的延遲加載,對(duì)比觀察輸出結(jié)果
      • 將測(cè)試類中的另一個(gè)想要獲得的信息給注釋掉,如下:
      • 運(yùn)行結(jié)果如下:
  • 結(jié)論:對(duì)比兩種運(yùn)行結(jié)果可以得到,延遲加載的使用意義:需要獲得什么信息再去執(zhí)行相應(yīng)的sql語(yǔ)句,如果不需要獲得的信息則不會(huì)進(jìn)行加載!

MyBatis中延遲加載,全局和局部的開(kāi)啟使用與關(guān)閉

1、問(wèn)題提出

在之前的文章一對(duì)多中,當(dāng)我們有一個(gè)用戶,他又一百個(gè)賬戶。
(1)在查詢用戶時(shí),要不要把關(guān)聯(lián)的賬戶信息查詢出來(lái)?
(2)在查詢賬戶時(shí),要不要把關(guān)聯(lián)的用戶信息查詢出來(lái)?

對(duì)于第一個(gè)問(wèn)題,我們應(yīng)該是什么時(shí)候需要查詢賬戶信息,才查詢。沒(méi)必要每次查詢用戶信息都把賬戶信息也查詢出來(lái)。因?yàn)槿绻看味疾樵兂鲑~戶信息,對(duì)我們的內(nèi)存開(kāi)銷是很大的,而且每次查詢也都不一定用到賬戶信息。
對(duì)于第二個(gè)問(wèn)題,我們就可以在查詢賬戶信息的時(shí)候查詢出關(guān)聯(lián)的用戶信息,因?yàn)槲覀內(nèi)绻皇菃渭兊馁~戶信息沒(méi)有說(shuō)明用戶是誰(shuí),這對(duì)于我們來(lái)說(shuō)是不友好的。也沒(méi)什么意義,所以在每次查詢賬戶信息的時(shí)候都要顯示出關(guān)聯(lián)的用戶信息。

2、延遲加載和立即加載

第一個(gè)問(wèn)題其實(shí)就是延遲加載。
第二個(gè)問(wèn)題就是立即加載。

延遲加載

在真正的使用數(shù)據(jù)時(shí)才發(fā)起查詢,不用的時(shí)候不查。按需加載(懶加載)。

立即加載

不管用不用,只要一調(diào)用方法,馬上發(fā)起查詢。

3、三種對(duì)應(yīng)的表關(guān)系中的加載

四種表 關(guān)系:一對(duì)一,一對(duì)多,多對(duì)多。
一對(duì)多、多對(duì)多:通常情況下,我們都是采用延遲加載。
多對(duì)一、一對(duì)一:通常情況下,我們都是采用立即加載。

4、打開(kāi)全局延遲加載(實(shí)現(xiàn)一對(duì)一的延遲加載)

這里的項(xiàng)目結(jié)構(gòu)和mybatis關(guān)聯(lián)查詢里面的大部分內(nèi)容是一樣的,我們只需要更改一些配置信息。
更改mybatis-config.xml中的信息
在這里添加兩條setting標(biāo)簽配置信息。根據(jù)mybatis的文檔

需要設(shè)置這兩個(gè)屬性。才能開(kāi)啟延遲加載。

  <settings><!-- 打開(kāi)全局延遲加載的開(kāi)關(guān) --><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/>
</settings>

在這里插入圖片描述

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 配置延遲加載策略 --><settings><!-- 打開(kāi)全局延遲加載的開(kāi)關(guān) --><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/></settings><typeAliases><package name="cn.fpl1116.pojo"/></typeAliases><!--使用dev環(huán)境--><environments default="dev"><environment id="dev"><!--事務(wù)--><transactionManager type="JDBC"></transactionManager><!--type="POOLED":連接池--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value=""/></dataSource></environment></environments><!--加載mapper映射文件--><mappers><package name="cn.fpl1116.mapper"/></mappers>
</configuration>

5、實(shí)現(xiàn)一對(duì)多的延遲加載(將上面設(shè)置的全局延遲加載給注釋掉)

編寫(xiě)UserMapper.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="cn.fpl1116.mapper.UserMapper"><resultMap id="getUserById2Result" type="cn.fpl1116.pojo.User"><id column="id" property="id"></id><result column="username" property="username"/><result column="address" property="address"/><result column="sex" property="sex"/><result column="birthday" property="birthday"/><!--延遲加載的一對(duì)多--><!--property="accountList":屬性名ofType="com.by.pojo.Account":集合的泛型,等價(jià)于resultTypeselect="com.by.mapper.AccountMapper.selectAccountByUid":要調(diào)用的select標(biāo)簽的idcolumn="id":傳遞給select查詢的參數(shù)fetchType="lazy":局部開(kāi)啟懶加載--><collection property="accountList"ofType="cn.fpl1116.pojo.Account"select="cn.fpl1116.mapper.AccountMapper.selectAccountByUid"column="id"fetchType="lazy"></collection></resultMap><select id="getUserById2" parameterType="int" resultMap="getUserById2Result"><!-- SELECT u.*, a.id aid, a.uid uid, a.money money FROM user u LEFT JOIN account a ON u.id=a.uid WHERE u.id=#{id}-->select * from user where id=#{id}</select>
</mapper>

在UserMapper.xml中添加select查詢語(yǔ)句

<select id="selectAccountByUid" parameterType="int" resultType="cn.fpl1116.pojo.Account">SELECT * FROM account WHERE uid=#{uid}</select>

在UserMapper.java中添加屬性

User getUserById2(Integer id);

編寫(xiě)測(cè)試類

 @Testpublic void testGetUserById2(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUserById2(41);System.out.println(user.getUsername());List<Account> accountList = user.getAccountList();for (Account account : accountList) {System.out.println(account);}}

延遲加載運(yùn)行結(jié)果如下:

在這里插入圖片描述

6、測(cè)試一對(duì)多的延遲加載,對(duì)比觀察輸出結(jié)果

將測(cè)試類中的另一個(gè)想要獲得的信息給注釋掉,如下:

 @Testpublic void testGetUserById2(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUserById2(41);System.out.println(user.getUsername());//List<Account> accountList = user.getAccountList();//for (Account account : accountList) {//    System.out.println(account);//}}

運(yùn)行結(jié)果如下:

在這里插入圖片描述

結(jié)論:對(duì)比兩種運(yùn)行結(jié)果可以得到,延遲加載的使用意義:需要獲得什么信息再去執(zhí)行相應(yīng)的sql語(yǔ)句,如果不需要獲得的信息則不會(huì)進(jìn)行加載!

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

相關(guān)文章:

  • 深圳網(wǎng)站開(kāi)發(fā)公司寶網(wǎng)seo外包優(yōu)化公司
  • 網(wǎng)站 意義百度查重入口
  • 汽車網(wǎng)站頁(yè)面設(shè)計(jì)雅虎搜索引擎中文版
  • 浙江省人才網(wǎng)官方網(wǎng)站建設(shè)廳招聘企業(yè)網(wǎng)站有哪些功能
  • wordpress顯示慢網(wǎng)站推廣seo設(shè)置
  • 公司做網(wǎng)站設(shè)計(jì)的百度熱點(diǎn)排行榜
  • 網(wǎng)站升級(jí)中模板站長(zhǎng)統(tǒng)計(jì)幸福寶
  • 怎樣修改網(wǎng)站模板百度seo網(wǎng)站優(yōu)化 網(wǎng)絡(luò)服務(wù)
  • 赤峰專業(yè)的網(wǎng)站建設(shè)谷歌搜索引擎優(yōu)化
  • 哪個(gè)網(wǎng)站可以做付郵免費(fèi)送活動(dòng)怎么免費(fèi)自己做推廣
  • 做詐騙網(wǎng)站犯什么法西安百度公司地址介紹
  • 煙臺(tái)網(wǎng)站改版網(wǎng)站快速收錄
  • 新手去哪個(gè)網(wǎng)站做翻譯搜索引擎哪個(gè)最好用
  • 餐飲網(wǎng)站建設(shè)百度com百度一下你
  • 平安好車主app下載官方網(wǎng)站下載推廣拉新app哪幾個(gè)靠譜
  • 做涉黃的視頻網(wǎng)站用什么服務(wù)器域名注冊(cè)需要多少錢(qián)
  • 湖北省建設(shè)招投標(biāo)監(jiān)督機(jī)構(gòu)網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)多少錢(qián)
  • 無(wú)錫網(wǎng)站的建設(shè)搜索引擎優(yōu)化關(guān)鍵詞選擇的方法有哪些
  • 做網(wǎng)站設(shè)計(jì)的都轉(zhuǎn)行干啥了網(wǎng)址如何被快速收錄
  • 做網(wǎng)站找云無(wú)限seo搜索優(yōu)化排名
  • 北京的制作網(wǎng)站的公司在哪里seo學(xué)校培訓(xùn)
  • 汽車圖片查詢網(wǎng)站源碼十大網(wǎng)站排行榜
  • 醫(yī)療網(wǎng)站建設(shè)公司哪家好百度站點(diǎn)
  • 電子商務(wù)網(wǎng)站規(guī)劃書(shū)范文桂林市天氣預(yù)報(bào)
  • 寧波網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)頁(yè)制作的步驟
  • 設(shè)計(jì)師培訓(xùn) 網(wǎng)站seo資訊
  • 網(wǎng)站建設(shè)是在商標(biāo)哪個(gè)類別16888精品貨源入口
  • 做圖片詳情網(wǎng)站如何注冊(cè)自己的網(wǎng)站
  • 百度主動(dòng)提交工具 wordpress關(guān)鍵詞排名手機(jī)優(yōu)化軟件
  • 綜合網(wǎng)站推廣百度站長(zhǎng)快速收錄