最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié)

 更新時(shí)間:2023年02月18日 16:18:40   投稿:wdc  
這篇文章主要介紹了java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),包括:Java代碼優(yōu)化,數(shù)據(jù)庫優(yōu)化,分布式緩存,異步化,Web前段,搜索引擎優(yōu)化等需要的朋友可以參考下

性能優(yōu)化屬于Java高級(jí)崗的必備技能,而且大廠特別喜歡考察,今天主要給大家介紹9種性能優(yōu)化的方法

1.Java代碼優(yōu)化

之所以把代碼放到第一位,是因?yàn)檫@一點(diǎn)最容易引忽視,比如拿到一個(gè)性能優(yōu)化的需求以后,言必稱緩存、異步等。

實(shí)際上,第一步就應(yīng)該是分析相關(guān)的代碼,找出相應(yīng)的瓶頸,再來考慮具體的優(yōu)化策略。

有一些性能問題,完全是由于代碼寫的不合理,通過直接修改一下代碼就能解決問題的,比如for循環(huán)次數(shù)過多、作了很多無謂的條件判斷、相同邏輯重復(fù)多次等,這樣的優(yōu)化成本是最低的。

2.數(shù)據(jù)庫優(yōu)化

9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),強(qiáng)烈建議收藏!-mikechen的互聯(lián)網(wǎng)架構(gòu)

1.SQL優(yōu)化

這里以MySQL為例,最常見的方式是,由自帶的慢查詢?nèi)罩净蛘唛_源的慢查詢系統(tǒng)定位到具體的出問題的SQL,然后使用explain、profile等工具來逐步調(diào)優(yōu),最后經(jīng)過測(cè)試達(dá)到效果后上線。

這里舉幾個(gè)優(yōu)化的例子:

1.查詢優(yōu)化

對(duì)查詢進(jìn)行優(yōu)化,要盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引。

2.避免null判斷

應(yīng)盡量避免在 where 子句中對(duì)字段進(jìn)行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:

select id from t where num is null

3.避免全表掃描

應(yīng)盡量避免在 where 子句中使用 != 或 <> 操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描。

應(yīng)盡量避免在 where 子句中使用 or 來連接條件,如果一個(gè)字段有索引,一個(gè)字段沒有索引,將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描。

in和 not in 也要慎用,否則會(huì)導(dǎo)致全表掃描,如:

select id from t where num in(1,2,3)

對(duì)于連續(xù)的數(shù)值,能用 between就不要用 in 了:

select id from t where num between 1 and 3

4.大數(shù)據(jù)量查詢

對(duì)于多張大數(shù)據(jù)量的表JOIN,要先分頁再JOIN,否則邏輯讀會(huì)很高。

5.合理使用索引

索引并不是越多越好,索引固然可以提高相應(yīng)的 select 的效率,但同時(shí)也降低了 insert 及 update 的效率,因?yàn)?insert 或 update 時(shí)有可能會(huì)重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。

一個(gè)表的索引數(shù)最好不要超過6個(gè),若太多則應(yīng)考慮一些不常使用到的列上建的索引是否有 必要。

6.多使用數(shù)字型字段

盡量使用數(shù)字型字段,若只含數(shù)值信息的字段盡量不要設(shè)計(jì)為字符型,這會(huì)降低查詢和連接的性能,并會(huì)增加存儲(chǔ)開銷。

這是因?yàn)橐嬖谔幚聿樵兒瓦B 接時(shí)會(huì)逐個(gè)比較字符串中每一個(gè)字符,而對(duì)于數(shù)字型而言只需要比較一次就夠了。

7.避免大數(shù)量

盡量避免向客戶端返回大數(shù)據(jù)量,若數(shù)據(jù)量過大,應(yīng)該考慮相應(yīng)需求是否合理。

8.避免大事務(wù)

盡量避免大事務(wù)操作,提高系統(tǒng)并發(fā)能力。

2.連接池調(diào)優(yōu)

我們的應(yīng)用為了實(shí)現(xiàn)數(shù)據(jù)庫連接的高效獲取、對(duì)數(shù)據(jù)庫連接的限流等目的,通常會(huì)采用連接池類的方案,即每一個(gè)應(yīng)用節(jié)點(diǎn)都管理了一個(gè)到各個(gè)數(shù)據(jù)庫的連接池。

隨著業(yè)務(wù)訪問量或者數(shù)據(jù)量的增長,原有的連接池參數(shù)可能不能很好地滿足需求,這個(gè)時(shí)候就需要結(jié)合當(dāng)前使用連接池的原理、具體的連接池監(jiān)控?cái)?shù)據(jù)和當(dāng)前的業(yè)務(wù)量作一個(gè)綜合的判斷,通過反復(fù)的幾次調(diào)試得到最終的調(diào)優(yōu)參數(shù)。

3.架構(gòu)層面

這一類調(diào)優(yōu)包括讀寫分離、多從庫負(fù)載均衡、水平和垂直分庫分表等方面,一般需要的改動(dòng)較大,但是頻率沒有SQL調(diào)優(yōu)高,而且一般需要DBA來配合參與。

9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),強(qiáng)烈建議收藏!-mikechen的互聯(lián)網(wǎng)架構(gòu)

3.分布式緩存

緩存可以稱的上是性能優(yōu)化的利器,緩存主要用來存放那些讀寫比很高、很少變化的數(shù)據(jù)。

9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),強(qiáng)烈建議收藏!-mikechen的互聯(lián)網(wǎng)架構(gòu)

什么情況適合用緩存?考慮以下兩種場(chǎng)景:

  •  短時(shí)間內(nèi)相同數(shù)據(jù)重復(fù)查詢多次且數(shù)據(jù)更新不頻繁,這個(gè)時(shí)候可以選擇先從緩存查詢,查詢不到再從數(shù)據(jù)庫加載并回設(shè)到緩存的方式。此種場(chǎng)景較適合用單機(jī)緩存。
  •  高并發(fā)查詢熱點(diǎn)數(shù)據(jù),后端數(shù)據(jù)庫不堪重負(fù),可以用緩存來扛。

使用緩存需要注意的問題:

1.避免緩存失效

把頻繁修改的數(shù)據(jù)放入緩存,容易出現(xiàn)數(shù)據(jù)寫入緩存后,應(yīng)用還來不及讀取緩存,數(shù)據(jù)就已經(jīng)失效的情形,徒增系統(tǒng)負(fù)擔(dān)。

2.緩存熱點(diǎn)數(shù)據(jù)

緩存使用的內(nèi)存資源非常寶貴,只能將最新訪問的數(shù)據(jù)緩存起來,而把歷史數(shù)據(jù)清理出緩存,即緩存資源應(yīng)該留給20%的熱點(diǎn)數(shù)據(jù)。

 3.數(shù)據(jù)不一致性

一般會(huì)對(duì)緩存設(shè)置失效時(shí)間,超過失效時(shí)間,就要從數(shù)據(jù)庫重新加載。

因此應(yīng)用要忍受一定時(shí)間的數(shù)據(jù)不一致,另一種策略是數(shù)據(jù)更新時(shí)立即更新緩存,不過這也會(huì)帶來更多的系統(tǒng)開銷和事務(wù)一致性的問題。

 4.緩存可用性

業(yè)務(wù)發(fā)展到一定階段時(shí),緩存會(huì)承擔(dān)大部分?jǐn)?shù)據(jù)訪問的壓力,數(shù)據(jù)庫已經(jīng)習(xí)慣了有緩存的日子,所以當(dāng)緩存服務(wù)器崩潰時(shí),數(shù)據(jù)庫會(huì)因?yàn)橥耆荒艹惺苋绱舜蟮膲毫Χ礄C(jī),進(jìn)而導(dǎo)致整個(gè)網(wǎng)站不可用,這種情況被稱作緩存雪崩,發(fā)生這種故障,甚至不能簡(jiǎn)單地重啟緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器來恢復(fù)網(wǎng)站訪問。

解決方式:

1)緩存熱備(當(dāng)某臺(tái)服務(wù)器宕機(jī)時(shí),將緩存訪問切換到熱備服務(wù)器上;

2)緩存服務(wù)器集群。

5. 緩存預(yù)熱

緩存中存放的是熱點(diǎn)數(shù)據(jù),熱點(diǎn)數(shù)據(jù)是緩存系統(tǒng)用LRU對(duì)不斷訪問的數(shù)據(jù)篩選出來的,這個(gè)過程需要較長的時(shí)間。

新啟動(dòng)的緩存系統(tǒng)沒有任何數(shù)據(jù),此時(shí)系統(tǒng)的性能和數(shù)據(jù)庫負(fù)載都不太好。因此可以選擇在啟動(dòng)緩存是就把熱點(diǎn)數(shù)據(jù)預(yù)加載好。

 6.緩存穿透

因?yàn)椴磺‘?dāng)?shù)臉I(yè)務(wù)或惡意攻擊,持續(xù)高并發(fā)地訪問某一個(gè)不存在的數(shù)據(jù),如果緩存不保存該數(shù)據(jù),就會(huì)有大量的請(qǐng)求壓力落在數(shù)據(jù)庫上。

簡(jiǎn)單的解決方式是把請(qǐng)求的不存在的數(shù)據(jù)也放進(jìn)緩存,其value是null。

4.異步化

針對(duì)某些客戶端的請(qǐng)求,在服務(wù)端可能需要針對(duì)這些請(qǐng)求做一些附屬的事情,這些事情其實(shí)用戶并不關(guān)心或者用戶不需要立即拿到這些事情的處理結(jié)果,這種情況就比較適合用異步的方式處理這些事情。

異步化的作用:

  •  縮短接口響應(yīng)時(shí)間,使用戶的請(qǐng)求快速返回,用戶體驗(yàn)更好。
  •  避免線程長時(shí)間處于運(yùn)行狀態(tài),這樣會(huì)引起服務(wù)線程池的可用線程長時(shí)間不夠用,進(jìn)而引起線程池任務(wù)隊(duì)列長度增大,從而阻塞更多請(qǐng)求任務(wù),使得更多請(qǐng)求得不到技術(shù)處理。
  •  線程長時(shí)間處于運(yùn)行狀態(tài),可能還會(huì)引起系統(tǒng)Load、CPU使用率、機(jī)器整體性能下降等一系列問題,甚至引發(fā)雪崩。異步的思路可以在不增加機(jī)器數(shù)和CPU數(shù)的情況下,有效解決這個(gè)問題。

比如:使用消息隊(duì)列(MQ)中間件服務(wù),MQ天生就是異步的。

9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),強(qiáng)烈建議收藏!-mikechen的互聯(lián)網(wǎng)架構(gòu)

一些額外的任務(wù),可能不需要我這個(gè)系統(tǒng)來處理,但是需要其他系統(tǒng)來處理,這個(gè)時(shí)候可以先把它封裝成一個(gè)消息,扔到消息隊(duì)列里面,通過消息中間件的可靠性保證把消息投遞到關(guān)心它的系統(tǒng),然后讓這個(gè)系統(tǒng)來做相應(yīng)的處理。

再比如C端在完成一個(gè)提單動(dòng)作以后,可能需要其它端做一系列的事情,但是這些事情的結(jié)果不會(huì)立刻對(duì)C端用戶產(chǎn)生影響,那么就可以先把C端下單的請(qǐng)求響應(yīng)先返回給用戶,返回之前往MQ中發(fā)一個(gè)消息即可,而且這些事情理應(yīng)不是C端的負(fù)責(zé)范圍,所以這個(gè)時(shí)候用MQ的方式,來解決這個(gè)問題最合適。

5.Web前段

Web前端指網(wǎng)站業(yè)務(wù)邏輯之前的部分,包括:

  • 瀏覽器加載
  • 網(wǎng)站視圖模型
  • 圖片服務(wù)
  • CDN服務(wù)等

9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),強(qiáng)烈建議收藏!-mikechen的互聯(lián)網(wǎng)架構(gòu)

主要優(yōu)化手段有優(yōu)化瀏覽器訪問,使用反向代理,CDN等。

1.瀏覽器訪問優(yōu)化

(1)減少http請(qǐng)求

HTTP協(xié)議是無狀態(tài)的應(yīng)用層協(xié)議,意味著每次HTTP請(qǐng)求都需要簡(jiǎn)歷通信鏈路,進(jìn)行數(shù)據(jù)傳輸,而在服務(wù)器端,每個(gè)HTTP都需要啟動(dòng)獨(dú)立的線程去處理,這些通信和服務(wù)的開銷都很昂貴,減少HTTP請(qǐng)求的數(shù)目可有效提高訪問性能。

減少HTTP請(qǐng)求的主要手段是:

  •  合并CSS,以及壓縮CSS大小
  •  合并JavaScript,以及壓縮JS大小
  •  合并圖片

將瀏覽器一次訪問需要的JavaScript,CSS合并成一個(gè)文件,這樣瀏覽器就只需要一次請(qǐng)求。多張圖片合并成一張,如果每張圖片都有不同的超鏈接,可通過CSS偏移響應(yīng)鼠標(biāo)點(diǎn)擊操作,構(gòu)造不同的URL。

(2)使用瀏覽器緩存

對(duì)一個(gè)網(wǎng)站而言,CSS,JavaScript,Logo,圖標(biāo)等這些靜態(tài)資源文件更新的頻率都比較低,而這些文件又幾乎是每次HTTP請(qǐng)求都需要的,如果將這些文件緩存在瀏覽器中,可以極好地改善性能。通過設(shè)置HTTP頭中Cache-Control和Expires屬性,可設(shè)定瀏覽器緩存,緩存時(shí)間可以是數(shù)天甚至是幾個(gè)月。有時(shí)候,靜態(tài)資源文件變化需要及時(shí)應(yīng)用到客戶端瀏覽器,這種情況可以通過改變文件名實(shí)現(xiàn),比如一般會(huì)在JavaScript后面加上一個(gè)版本號(hào),使瀏覽器刷新修改的文件。

(3)啟用壓縮

在服務(wù)器端對(duì)文件進(jìn)行壓縮,在瀏覽器端對(duì)文件解壓縮,可有效較少通信傳輸?shù)臄?shù)據(jù)量。文本文件的壓縮效率科大80%以上。

(4)CSS放在頁面最上面,JavaScript放在頁面最下面

瀏覽器會(huì)在下載完全部CSS之后對(duì)整個(gè)頁面進(jìn)行渲染,因此最好的做法是將CSS放在頁面最上面,讓瀏覽器盡快下載CSS。JS則想法,瀏覽器在加載JS后立即執(zhí)行,有可能會(huì)阻塞整個(gè)頁面,造成頁面顯示緩慢,因此JS最好放在頁面最下面。

(5)減少Cookie傳輸

一方面,Cookie包含在每次請(qǐng)求和響應(yīng)中,太大的Cookie會(huì)嚴(yán)重影響數(shù)據(jù)傳輸,因此哪些數(shù)據(jù)需要寫入Cookie需要慎重考慮,盡量減少Cookie中傳輸?shù)臄?shù)據(jù)量。另一方面,對(duì)于某些靜態(tài)資源的訪問,如CSS,JS等,發(fā)送Cookie沒有意義,可以考慮靜態(tài)資源使用獨(dú)立域名訪問,避免請(qǐng)求靜態(tài)資源時(shí)發(fā)送Cookie,減少Cookie傳輸?shù)拇螖?shù)。

2.CDN加速

CDN(Content Distribute Network,內(nèi)存分發(fā)網(wǎng)絡(luò))的本質(zhì)上仍然是一個(gè)緩存,而且將數(shù)據(jù)緩存在離用戶最近的地方,是用戶以最快速度獲取數(shù)據(jù),即所謂網(wǎng)絡(luò)訪問第一跳。

CDN一般緩存的是靜態(tài)資源,如圖片,文件,CSS,Script腳本,靜態(tài)網(wǎng)頁等,但是這些文件訪問頻率很高,將其緩存在CDN可極大改善網(wǎng)頁的打開速度。

3.反向代理

傳統(tǒng)代理服務(wù)器位于瀏覽器一側(cè),代理瀏覽器將HTTP請(qǐng)求發(fā)送到互聯(lián)網(wǎng)上,而反向代理服務(wù)器位于網(wǎng)站機(jī)房一側(cè),代理網(wǎng)站W(wǎng)eb服務(wù)器接收HTTP請(qǐng)求。

和傳統(tǒng)代理服務(wù)器可以保護(hù)瀏覽器安全一樣,反向代理服務(wù)器也具有保護(hù)網(wǎng)站安全的作用,來自互聯(lián)網(wǎng)的訪問請(qǐng)求必須經(jīng)過代理服務(wù)器,相當(dāng)于在Web服務(wù)器和可能的網(wǎng)絡(luò)攻擊之間建立了一個(gè)屏障。

除了安全功能,代理服務(wù)器也可以通過配置緩存功能加速Web請(qǐng)求,當(dāng)用戶第一次訪問靜態(tài)內(nèi)容的時(shí)候,靜態(tài)內(nèi)容就被緩存在反向代理服務(wù)器上,這樣當(dāng)其他用戶訪問該靜態(tài)內(nèi)容的時(shí)候,就可以直接從反向代理服務(wù)器返回,加速Web請(qǐng)求響應(yīng)速度,減輕服務(wù)器負(fù)載要。

6.服務(wù)化

做服務(wù)化最基礎(chǔ)的是按業(yè)務(wù)做服務(wù)拆分,避免跨業(yè)務(wù)間的互相影響,數(shù)據(jù)和服務(wù)同時(shí)拆分。同一個(gè)業(yè)務(wù)內(nèi)部我們還按計(jì)算密集型/IO密集型的服務(wù)拆分、C端/B端服務(wù)拆分、核心/非核心服務(wù)拆分、高頻服務(wù)單獨(dú)部署等原則做拆分。

7.硬件升級(jí)

硬件問題對(duì)性能的影響不容忽視。

舉一個(gè)例子:一個(gè)DB集群經(jīng)常有慢SQL報(bào)警,業(yè)務(wù)排查下來發(fā)現(xiàn)SQL都很簡(jiǎn)單,該做的索引優(yōu)化也都做了,后來DBA同學(xué)幫忙定位到問題是硬件過舊導(dǎo)致,將機(jī)械硬盤升級(jí)成固態(tài)硬盤之后報(bào)警立馬消失了,效果立竿見影!

8.搜索引擎

復(fù)雜查詢以及一些聚合計(jì)算不適合在數(shù)據(jù)庫中做,可以利用搜索引擎來實(shí)現(xiàn),另外搜索引擎還可以幫我們很好的解決跨庫、跨數(shù)據(jù)源檢索的場(chǎng)景。

9.產(chǎn)品邏輯優(yōu)化

業(yè)務(wù)邏輯優(yōu)化經(jīng)常會(huì)容易被忽略,但效果卻往往比數(shù)據(jù)庫性能優(yōu)化、JVM調(diào)優(yōu)之類的來的更明顯。

舉一個(gè)例子,12306春運(yùn)搶火車票的場(chǎng)景,由于訪問的人多,用戶點(diǎn)擊“查票”之后系統(tǒng)會(huì)非???,進(jìn)度條非常慢,作為用戶,我們會(huì)習(xí)慣性的再去點(diǎn)“查票”,可能會(huì)連續(xù)點(diǎn)個(gè)好幾次。

假設(shè)平均一個(gè)用戶點(diǎn)5次,則后端系統(tǒng)負(fù)載就增加了5倍!而其中80%的請(qǐng)求是重復(fù)請(qǐng)求。

這個(gè)時(shí)候我們可以通過產(chǎn)品邏輯的方式來優(yōu)化,比如,在用戶點(diǎn)擊查詢之后將“按鈕置灰”,或者通過JS控制xx秒只能只能提交一次請(qǐng)求等,有效的攔截了80%的無效流量

以上就是java 9大性能優(yōu)化經(jīng)驗(yàn)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于java性能優(yōu)化經(jīng)驗(yàn)總結(jié)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring?MVC DispatcherServlet處理請(qǐng)求過程示例詳解

    Spring?MVC DispatcherServlet處理請(qǐng)求過程示例詳解

    這篇文章主要介紹了Spring?MVC?DispatcherServlet處理請(qǐng)求過程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • mybatis參數(shù)類型不匹配錯(cuò)誤argument type mismatch的處理方案

    mybatis參數(shù)類型不匹配錯(cuò)誤argument type mismatch的處理方案

    這篇文章主要介紹了mybatis參數(shù)類型不匹配錯(cuò)誤argument type mismatch的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 優(yōu)化spring?boot應(yīng)用后6s內(nèi)啟動(dòng)內(nèi)存減半

    優(yōu)化spring?boot應(yīng)用后6s內(nèi)啟動(dòng)內(nèi)存減半

    這篇文章主要為大家介紹了優(yōu)化spring?boot后應(yīng)用6s內(nèi)啟動(dòng)內(nèi)存減半的優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-02-02
  • Maven插件的安裝及使用

    Maven插件的安裝及使用

    這篇文章主要介紹了Maven插件的安裝及使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 深入分析@Resource和@Autowired注解區(qū)別

    深入分析@Resource和@Autowired注解區(qū)別

    這篇文章主要為大家介紹了深入分析@Resource和@Autowired注解區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Spring IoC實(shí)現(xiàn)條件化裝配Bean的方法詳解

    Spring IoC實(shí)現(xiàn)條件化裝配Bean的方法詳解

    條件化裝配 Bean(Conditional Bean Assembly) 指的是:讓 Spring 容器根據(jù)特定的條件來決定是否要?jiǎng)?chuàng)建和注冊(cè)某一個(gè) Bean,本文給大家介紹了Spring IoC實(shí)現(xiàn)條件化裝配Bean的詳細(xì)步驟,需要的朋友可以參考下
    2025-07-07
  • MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn)

    MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn)

    本文主要介紹了MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn),包括使用PaginationInterceptor和MybatisPlusInterceptor兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Python文件高級(jí)操作函數(shù)之文件信息獲取與目錄操作

    Python文件高級(jí)操作函數(shù)之文件信息獲取與目錄操作

    這篇文章主要介紹了Python文件高級(jí)操作函數(shù)之文件信息獲取與目錄操作,在Python中,內(nèi)置了文件(File)對(duì)象。在使用文件對(duì)象時(shí),首先需要通過內(nèi)置的open()方法創(chuàng)建一個(gè)文件對(duì)象,然后通過該對(duì)象提供的方法進(jìn)行一些基本文件操作,需要的朋友可以參考下
    2023-05-05
  • 基于Spring BeanUtils的copyProperties方法使用及注意事項(xiàng)

    基于Spring BeanUtils的copyProperties方法使用及注意事項(xiàng)

    這篇文章主要介紹了基于Spring BeanUtils的copyProperties方法使用及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)的id值

    mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)的id值

    當(dāng)往mysql數(shù)據(jù)庫插入一條數(shù)據(jù)時(shí),有時(shí)候需要知道剛插入的信息,下面這篇文章主要給大家介紹了關(guān)于mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)id值的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評(píng)論

武城县| 滦南县| 炎陵县| 滨海县| 保靖县| 开封市| 林州市| 通海县| 黄平县| 安宁市| 广平县| 沐川县| 大同县| 盐津县| 临漳县| 池州市| 兴安县| 长武县| 井陉县| 武平县| 弋阳县| 孟连| 保德县| 贵阳市| 阜阳市| 南澳县| 孟州市| 余姚市| 陵水| 黔西县| 岗巴县| 南华县| 海兴县| 黑河市| 潮州市| 罗平县| 定日县| 宁陕县| 澎湖县| 嘉鱼县| 苏尼特左旗|