国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

贛縣網(wǎng)站建設(shè)國(guó)內(nèi)新聞最新消息十條

贛縣網(wǎng)站建設(shè),國(guó)內(nèi)新聞最新消息十條,制作網(wǎng)站怎樣找公司來(lái)幫做,wordpress標(biāo)簽歸檔.NET開源 ORM 框架 SqlSugar 系列 【開篇】.NET開源 ORM 框架 SqlSugar 系列【入門必看】.NET開源 ORM 框架 SqlSugar 系列【實(shí)體配置】.NET開源 ORM 框架 SqlSugar 系列【Db First】.NET開源 ORM 框架 SqlSugar 系列【Code First】.NET開源 ORM 框架 SqlSugar 系列【數(shù)據(jù)事務(wù)…

?.NET開源 ORM 框架 SqlSugar 系列

  1. 【開篇】.NET開源 ORM 框架 SqlSugar 系列
  2. 【入門必看】.NET開源 ORM 框架 SqlSugar 系列
  3. 【實(shí)體配置】.NET開源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET開源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET開源 ORM 框架 SqlSugar 系列
  6. 【數(shù)據(jù)事務(wù)】.NET開源 ORM 框架 SqlSugar 系列
  7. 【連接池】.NET開源 ORM 框架 SqlSugar 系列-CSDN博客

1. ADO.NET?連接池

如何啟用和禁用連接池?

連接字符串中將連接池值 Pooling 設(shè)置為 true 或 yes,則會(huì)啟用連接池(默認(rèn)啟用)。

啟用后連接池后系統(tǒng)會(huì)根據(jù)并發(fā)情況將連接池保持在一個(gè)合理區(qū)間,讓性能最大化,并不會(huì)立馬清空。而是將他狀態(tài)更改為sleep。禁用連接池性能會(huì)差一些,open就打開連接池 close就關(guān)閉連接池。

1.1 Open()?

1、啟用連接池情況(默認(rèn))

先找有沒(méi)有睡眠的連接池有恢復(fù)連接池,如果沒(méi)有睡眠的連接池打開新的連接池

2、禁用連接池情況(需要字符串關(guān)閉)

打開新連接池

1.2 Close ()

1、啟用連接池情況(默認(rèn))

將現(xiàn)有連接池睡眠

2、禁用連接池情況(需要字符串關(guān)閉)

關(guān)閉連接池

1.3 dispose()

方法實(shí)際是和 close()做的同一件事,唯一區(qū)別是 dispose?會(huì)銷毀當(dāng)前C#對(duì)象

SqlSugar dispose后在打開不會(huì)報(bào)錯(cuò),原理如下:

 var db = GetInstance();db.Open();Console.WriteLine(db.Ado.Connection.GetHashCode());db.Close();Console.WriteLine(db.Ado.Connection.GetHashCode());db.Dispose();//如果下次在使用db會(huì)new出新的SqlConnection和Ado.net不一樣Ado.net是直接報(bào)錯(cuò)Console.WriteLine(db.Ado.Connection.GetHashCode());

輸出結(jié)果如下:

image.png

唯一的區(qū)別是Dispose后在使用db,db對(duì)象會(huì)換成新的而不在是以前的,而close后在使用還是同一個(gè)db對(duì)象。

2、SqlConnection和連接池

SqlConnection?非線程安全對(duì)象,不同上下文要new不同對(duì)象

con.Open(); //請(qǐng)求數(shù)據(jù)庫(kù)連接池 查找有沒(méi)有 sleep 狀態(tài)的,沒(méi)有創(chuàng)建連接池
con.Close();//將當(dāng)前連接池狀態(tài)改為sleep , 如果長(zhǎng)時(shí)間不用會(huì)銷毀

上面的原理可以看出

1. 同一個(gè)對(duì)象多次 open?和 close?都是在現(xiàn)有的連接池里面去操作

2. 就算是多個(gè)SqlConnection不在同時(shí)間請(qǐng)求,也可能會(huì)用同一個(gè)連接池?

3.多個(gè)SqlConnection?并發(fā)操作會(huì)找有沒(méi)有空閑的連接池,沒(méi)有在創(chuàng)建

所以連接池在.NET中?微軟封裝的很好,很成熟?多數(shù).NET用戶都不知道是什么玩意兒。

連接超時(shí)設(shè)置

在連接池符串加上 Connection Timeout=10  ,默認(rèn)是30秒,單位秒

.NET中要配置連接池嗎?

?答:什么都不用配置只要學(xué)會(huì) open 和 close就行了?

3、SqlSugarClient原理

1.手動(dòng)釋放模式和SqlConnection原理一模一樣,底層就是用的SqlConnection并且需要注意線程安全

//創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象 SqlSugarClient   SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "Server=.xxxxx", DbType = DbType.SqlServer,IsAutoCloseConnection = false//手動(dòng)釋放  是長(zhǎng)連接 });//需要手動(dòng)using //或者//db.Open();//db.Close();

2.自動(dòng)釋放(推薦),說(shuō)白了不需要你去寫?using 或者 close和open


//創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象 SqlSugarClient   SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "Server=.xxxxx", DbType = DbType.SqlServer,IsAutoCloseConnection = true//自動(dòng)釋放});//寫代碼就不需要考慮 open close 直接用就行了

?情況1: 沒(méi)有事務(wù)的情況 ,每次操作自動(dòng)調(diào)用 open和close

?情況2:?有事務(wù)的情況下 ,開啟事務(wù)調(diào)用 open? 提交或者回滾事務(wù)調(diào)用 close

4、SqlSugarScope原理

它是對(duì) SqlSugarClient 的封裝讓他支持線程安全,并且在不同上下文自動(dòng)new?出?SqlSugarClient,在編寫代碼的時(shí)候不需要考慮他線程是否安全

什么是上下文?

異步情況:?在同一串a(chǎn)wait?中是一個(gè)上下文

同步情況:?在同一個(gè)線程是同一個(gè)上下文

同一個(gè)SqlSugarScope?做到了在同一個(gè)上下文共享一個(gè)對(duì)象,不同上下文自動(dòng)去NEW

5、如何驗(yàn)證是否釋放

默認(rèn)情況下只要超過(guò)100個(gè)請(qǐng)求沒(méi)關(guān)閉就會(huì)報(bào)錯(cuò),不同庫(kù)可能有差異

         for (int i = 0; i < 501; i++){SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){DbType = DbType.Oracle,ConnectionString = Config.ConnectionString,IsAutoCloseConnection = false//設(shè)成關(guān)閉這個(gè)代碼會(huì)直接報(bào)錯(cuò)});db.Ado.GetInt("SELECT 1 from dual"); }//IsAutoCloseConnection=true 執(zhí)行成功//IsAutoCloseConnection=false 會(huì)出現(xiàn)連接池超時(shí)或者超過(guò)上限等錯(cuò)誤

6、總結(jié)

他們3者的關(guān)系應(yīng)該是這樣的:

  1. SqlSugarScope?底層+自動(dòng)釋放+上下文安全
  2. SqlSugarClient? 底層+自動(dòng)釋放控制
  3. SqlConnection? ?底層
http://aloenet.com.cn/news/38501.html

相關(guān)文章:

  • h5開發(fā)教程哈爾濱seo網(wǎng)站管理
  • 做網(wǎng)站賺錢的時(shí)代過(guò)去了嗎百度地圖導(dǎo)航
  • 網(wǎng)站設(shè)置默認(rèn)首頁(yè)網(wǎng)絡(luò)營(yíng)銷網(wǎng)
  • 萬(wàn)戶網(wǎng)站免費(fèi)手游推廣平臺(tái)
  • 杭州國(guó)外網(wǎng)站推廣公司站長(zhǎng)之家 站長(zhǎng)工具
  • 網(wǎng)站開發(fā)與實(shí)訓(xùn)報(bào)告企業(yè)優(yōu)化推廣
  • 北京網(wǎng)站建設(shè)w億瑪酷1訂制網(wǎng)站策劃方案
  • 網(wǎng)站開發(fā)業(yè)務(wù)需求分析今日熱點(diǎn)新聞
  • 辦公室局域網(wǎng)怎么搭建seo 資料包怎么獲得
  • wordpress小清新模板鄭州網(wǎng)站優(yōu)化推廣
  • 網(wǎng)站搬家 備案短視頻培訓(xùn)要多少學(xué)費(fèi)
  • 個(gè)人博客網(wǎng)站制作教程網(wǎng)店如何引流與推廣
  • 小說(shuō)網(wǎng)站代理網(wǎng)絡(luò)營(yíng)銷的推廣
  • 前端不會(huì)wordpress班級(jí)優(yōu)化大師頭像
  • 網(wǎng)站建設(shè)問(wèn)題分類和排除方法分析優(yōu)化大師win10能用嗎
  • 外貿(mào)建站上海成都seo工程師
  • 微信手機(jī)網(wǎng)頁(yè)登錄入口站長(zhǎng)工具seo診斷
  • 網(wǎng)站開發(fā)即時(shí)聊天源碼百度搜索指數(shù)排行榜
  • 濟(jì)南wordpress 建站線上營(yíng)銷推廣方式有哪些
  • 門戶網(wǎng)站系統(tǒng)有哪些平臺(tái)seo優(yōu)化方法網(wǎng)站快速排名推廣渠道
  • 網(wǎng)站的技術(shù)解決方案長(zhǎng)沙seo網(wǎng)站推廣
  • wordpress加sliderwin7怎么優(yōu)化最流暢
  • wordpress會(huì)員地址石家莊百度快照優(yōu)化
  • 做企業(yè)網(wǎng)站用哪個(gè)軟件長(zhǎng)沙大型網(wǎng)站建設(shè)公司
  • 網(wǎng)站開發(fā)的功能需求怎么寫最新的即時(shí)比分
  • 溫州網(wǎng)站建設(shè)推廣百度小說(shuō)排行榜2021
  • 用word做旅游網(wǎng)站新聞危機(jī)公關(guān)
  • 未來(lái)做那些網(wǎng)站能致富推廣方案怎么做
  • 做網(wǎng)站 需要多少錢邯鄲seo營(yíng)銷
  • wordpress英文版如何變成中文版網(wǎng)站seo標(biāo)題優(yōu)化技巧