Java 中訪問數據庫的步驟?Statement 和PreparedStatement 之間的區別?
Java 中訪問數據庫的步驟
1)注冊驅動;2)建立連接;3)創建Statement;4)執行sql 語句;5)處理結果集(若sql 語句為查詢語句);6)關閉連接。
Statement 和PreparedStatement 之間的區別
與Statement相比:
①PreparedStatement接口代表預編譯的語句,它主要的優勢在於可以減少SQL的編譯錯誤並增加SQL的安 全性(減少SQL注射攻擊的可能性);
②PreparedStatement中的SQL語句是可以帶參數的,避免了用字符串連接拼接SQL語句的麻煩和不 安全;③當批量處理SQL或頻繁執行相同的查詢時,PreparedStatement有明顯的性能上的優勢,由於數據庫可以將編譯優化后的SQL語句緩 存起來,下次執行相同結構的語句時就會很快(不用再次編譯和生成執行計划)。
補充:為了提供對存儲過程的調用,JDBC API中還提供了CallableStatement接口。存儲過程(Stored Procedure)是數據庫中一組為了完成特定功能的SQL語句的集合,經編譯后存儲在數據庫中,用戶通過指定存儲過程的名字並給出參數(如果該存儲過 程帶有參數)來執行它。雖然調用存儲過程會在網絡開銷、安全性、性能上獲得很多好處,但是存在如果底層數據庫發生遷移時就會有很多麻煩,因為每種數據庫的 存儲過程在書寫上存在不少的差別。