全免费午夜一级毛片真人_国产成人亚洲动漫视频_2019中文字幕视频_在线综合无码精选_龙泽美曦福利在线播放

民生 國(guó)內(nèi) 國(guó)際 社會(huì) 財(cái)經(jīng) 教育 科技 娛樂(lè) 體育 時(shí)尚 文化 奇聞 房產(chǎn)

要聞速遞:prepareStatement原理(preparestatement)

2023-07-02 13:53:06      來(lái)源:互聯(lián)網(wǎng)


(資料圖)

導(dǎo)讀

1、首先, 一個(gè)變量只是一個(gè)符號(hào),接口類(lèi)型的變量并不表示你必須用接口來(lái) new 一樣,這是面向?qū)ο蟮幕靖拍?,任何一個(gè)對(duì)象實(shí)例都能賦值給它的父類(lèi)型。

2、你應(yīng)該先理解面向?qū)ο蟮母拍睿氵@些問(wèn)題表示你沒(méi)有理解概念。

3、class Child implements Parent {}class Child extends parent {}Parent k = new Child(); // 上面兩種情況都可以這樣操作。

4、看完完整的樣例再說(shuō),prepareStatement 是帶參數(shù)的,一般來(lái)說(shuō)數(shù)據(jù)庫(kù)對(duì)于我們跑循環(huán)的情況(調(diào)用幾百次但僅是參數(shù)不同的時(shí)候)會(huì)有優(yōu)先的空間的,因?yàn)樵赟QL被數(shù)據(jù)庫(kù)執(zhí)行前它先要編譯它把它翻譯成一些內(nèi)部指令,而這個(gè)過(guò)程對(duì)于 prepareStatement 來(lái)說(shuō)只需要編譯一次,當(dāng)我們把參數(shù) hard code 到 createStatement 中時(shí)因?yàn)镾QL語(yǔ)句變了,所以數(shù)據(jù)庫(kù)需要每次都重新編譯而浪費(fèi)了時(shí)間(很多復(fù)雜的SQL 幾千個(gè)字符,涉及到N多表時(shí)編譯和制定執(zhí)行計(jì)劃是很費(fèi)時(shí)間的),當(dāng)然像 Oracle 也夠聰明,它發(fā)現(xiàn)你的SQL跟它緩存的已經(jīng)編譯過(guò)的SQL精確相同(連空格和大小寫(xiě)都完全相同)時(shí)也不再重新編譯,其它的數(shù)據(jù)庫(kù)就難說(shuō)。

5、例如下面這條SQL語(yǔ)句:select userid, username from tableA where email = ? order by username;通過(guò)編譯后的內(nèi)部的指令可能是,只是舉個(gè)例子,我并不了解內(nèi)部細(xì)節(jié):1,從字典中找出tableA 所有的表空間數(shù)據(jù)文件,2,email 是不是一個(gè)索引中的列?如果是我們不需要讀取所有數(shù)據(jù)塊,只需要根據(jù)索引來(lái)快速得到數(shù)據(jù)(因?yàn)槭蔷_查詢(xún))3,從表空間中分析出 tableA 大致在哪塊 block 塊中。

6、4,在這些塊對(duì)比 email 列得到記錄。

7、5,排序么?6,在符合條件的記錄中提取字段usrid 和 username。

本文分享完畢,希望對(duì)你有所幫助。

免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!

標(biāo)簽:

相關(guān)閱讀

今日推薦
精選圖文
48小時(shí)頻道點(diǎn)擊排行

Copyright @ 2008-2020 m.g888726.cn  華夏財(cái)富網(wǎng) 版權(quán)所有  聯(lián)系郵箱:3960 29142@qq.com