JDBC中PreparedStatement接口的執行邏輯

PreparedStatement接口是Statement接口的子接口,其好處是創建PreparedStatement對象時直接使用Sql語句做參數,能自動解析和編譯Sql語句,省去了Sql語句拼接和編譯的麻煩,提高了安全性。

一、舉個例子來說明PreparedStatement對象的執行順序:

第1步:建立連接,創建DriverManager對象用Connection接口來接收,相當於撥通數據庫。

Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/epet","root","0000");

第2步:創建prepareStatement對象,把SQL語句發送到數據庫,自動執行。

PreparedStatement stmt =conn.prepareStatement("insert into dog"+"(name,health,love,strain) values (?,?,?,?)");

stmt.setObject(index,"值");


setObject()用法:
setObject(i+1,arg[i])用法與setInt(i+1,arg[i]),setString(i+1,arg[i])用法類似,
但不需指定參數類型,可以通用;
其中,第一個是指你SQL語句中的第幾個參數,第二個是要設置的值
 
舉個例子:SQL語句如下,
Select * From tableName Where id=? And Name=?
則:
pstmt.setInt(1,100)就表示此處id=100
pstmt.setString(2,"abc")就表示此處Name="abc"



第3步:調用prepareStatement的方法,跟數據庫說明要返回什麼信息。

stmt.executeUpdate();

二、PreparedStatement對象的常用方法:

(1)int executeUpdate()方法,  返回的是增刪改操作影響的行數。

(2)ResultSet executeQuery()方法,返回的是查詢生成的ResultSet 對象,可以理解爲由查詢結果組成的二維表。

(3)boolean exectute()方法,如果Sql的執行結果是ResultSet 對象,則返回ture,如果結果是更新計數或者沒有結果,則返回   false.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章