Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
生活随笔
收集整理的這篇文章主要介紹了
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java 中訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的步驟?Statement 和PreparedStatement 之間的區(qū)別?
?
?Java 中訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的步驟
1)注冊(cè)驅(qū)動(dòng);2)建立連接;3)創(chuàng)建Statement;4)執(zhí)行sql 語(yǔ)句;5)處理結(jié)果集(若sql 語(yǔ)句為查詢(xún)語(yǔ)句);6)關(guān)閉連接。??
?Statement 和PreparedStatement 之間的區(qū)別
與Statement相比:①PreparedStatement接口代表預(yù)編譯的語(yǔ)句,它主要的優(yōu)勢(shì)在于可以減少SQL的編譯錯(cuò)誤并增加SQL的安 全性(減少SQL注射攻擊的可能性);
②PreparedStatement中的SQL語(yǔ)句是可以帶參數(shù)的,避免了用字符串連接拼接SQL語(yǔ)句的麻煩和不 安全;③當(dāng)批量處理SQL或頻繁執(zhí)行相同的查詢(xún)時(shí),PreparedStatement有明顯的性能上的優(yōu)勢(shì),由于數(shù)據(jù)庫(kù)可以將編譯優(yōu)化后的SQL語(yǔ)句緩 存起來(lái),下次執(zhí)行相同結(jié)構(gòu)的語(yǔ)句時(shí)就會(huì)很快(不用再次編譯和生成執(zhí)行計(jì)劃)。
?
補(bǔ)充:為了提供對(duì)存儲(chǔ)過(guò)程的調(diào)用,JDBC API中還提供了CallableStatement接口。存儲(chǔ)過(guò)程(Stored Procedure)是數(shù)據(jù)庫(kù)中一組為了完成特定功能的SQL語(yǔ)句的集合,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶(hù)通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò) 程帶有參數(shù))來(lái)執(zhí)行它。雖然調(diào)用存儲(chǔ)過(guò)程會(huì)在網(wǎng)絡(luò)開(kāi)銷(xiāo)、安全性、性能上獲得很多好處,但是存在如果底層數(shù)據(jù)庫(kù)發(fā)生遷移時(shí)就會(huì)有很多麻煩,因?yàn)槊糠N數(shù)據(jù)庫(kù)的 存儲(chǔ)過(guò)程在書(shū)寫(xiě)上存在不少的差別。?
轉(zhuǎn)載于:https://www.cnblogs.com/HRuinger/p/5897077.html
總結(jié)
以上是生活随笔為你收集整理的Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: H5 的getImageData造成的大
- 下一篇: python 入门学习篇(一),呵呵呵