《編程設計及數據庫基礎》課件-PreparedStatement_第1頁
《編程設計及數據庫基礎》課件-PreparedStatement_第2頁
《編程設計及數據庫基礎》課件-PreparedStatement_第3頁
《編程設計及數據庫基礎》課件-PreparedStatement_第4頁
《編程設計及數據庫基礎》課件-PreparedStatement_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

編程設計及數據庫基礎PreparedStatement

本節(jié)主要內容:1.掌握PreparedStatement的用法PreparedStatementPreparedStatement是一個用于執(zhí)行預編譯SQL語句的接口,它繼承自Statement接口。優(yōu)點:提高性能:因為SQL語句在第一次執(zhí)行時就被編譯,之后再次執(zhí)行相同的SQL語句時,不需要重新編譯,從而節(jié)省了時間。提高安全性:PreparedStatement可以有效防止SQL注入攻擊。由于SQL語句中的參數是通過占位符傳遞的,而不是直接拼接在SQL語句中,因此可以減少惡意用戶通過輸入特殊字符來篡改SQL語句的風險。SQL注入攻擊舉例驗證用戶名和密碼,就是應用程序向數據庫發(fā)送了一個查詢命令:Select*fromtb_userwhereusername=’用戶名’andpassword=’密碼’如果我們在密碼框中輸入字符串:

‘or‘1’=’1則查詢命令變?yōu)椋簊elect*fromtb_userwhereusername=’用戶名’andpassword=‘

or‘1’=’1’在where條件表達式中,因為拼接了or‘1’=’1’,導致where表達式的值永遠為true。PreparedStatement1.創(chuàng)建PreparedStatement對象定義SQL語句,SQL語句中的參數值,使用?占位符替代例:Stringsql="select*fromuserwhereusername=?andpassword=?".通過Connection對象獲取,并傳入對應的sql語句

例:PreparedStatementpstmt=conn.prepareStatement(sql);2.利用PreparedStatement.setXxx方法設置參數值setXxx(參數1,參數2)

:為SQL語句中?占位符對應的參數進行賦值注意:Xxx:表示?占位符對應的參數的數據類型參數,如setInt(參數1,參數2)參數1:表示SQL語句中?占位符的位置編號,從1開始參數2:表示SQL語句中?占位符的值3.執(zhí)行SQLexecuteUpdate():執(zhí)行DDL、DML語句。executeQuery():執(zhí)行DQL語句。

這兩個方法不需要再傳遞sql語句。4.關閉PreparedStatement對象close():執(zhí)行完成之后,關閉PreparedStatement對象.課堂實例:分別利用Statement接口和PreparedStatement接口實現(xiàn)用戶登錄驗證。MySQL服務器上st

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論