一、PreparedStatement介面 1.java.sql.PraparedStatement介面繼承並擴展了Statement介面,用於執行動態的SQL語句,即包含參數的SQL語句。 PraparedStatement ps = connection.preparedStatement("s ...
一、PreparedStatement介面
1.java.sql.PraparedStatement介面繼承並擴展了Statement介面,用於執行動態的SQL語句,即包含參數的SQL語句。
PraparedStatement ps = connection.preparedStatement("select * from table_name where id>? and (name = ? or name = ?)");
ps.setInt(1,6);
ps.setString(2,"馬先生");
ps.setObject(3,"李先生");
ResultSet rs = ps.executeQuery();
- 常用方法
方法 | 說明 |
---|---|
executeQuery() | 執行前面定義好的SELECT語句,並返回一個永遠不能為null的ResultSet實例 |
executeUpdate() | 執行前面定義好的INSERT\UPDATE\DELETE語句,並且返回一個int整數型值,為同步更新記錄的條數 |
SetInt(int i,int x) | 為指定參數設置int型值,對應參數的SQL類型為INTEGER |
SetLong(int i,long x) | .........long.........BIGINT |
SetFloat(int i,float x) | .............float..........FLOAT |
SetDouble(int i,double x) | ................double.............DOUBLE |
SetString(int i,String x) | ................String.............VARCHER或者LONGVARCHAR |
SetBoolean(int i,boolean x) | .................boolean.............BIT |
SetDate(int i,Date x) | ...................java.sql.Date................DATE |
SetObject(int i,Object x) | 用來設置各種類型的參數,JDBC規範定義了從Object類型到SQL類型的標準映射關係,在向資料庫發送不同類型的資料庫的時候,這些數據撿迴轉換為相應的SQL類型 |
setNull(int i,int sqlType) | 將指定參數設置為SQL中的NULL,該方法的第二個參數用來設置參數的SQL類型,具體值從java.sql.Types類中定義的靜態常量中選擇。 |
clearParameters() | 清除當前所有參數的值 |
二、CallableStatement介面
- java.sql.CallableStatement介面繼承並擴展了PraparedStatement介面,用於執行SQL 的存儲過程。
- CallabelStatement介面可以返回一個或者多個ResultSet對象,處理多個ResultSet對象的方法是從Statement中繼承來的。
三、ResultSet介面
- 類似於一個數據表,通過實例可獲得檢索結果以及對應數據表的相關信息,例如列名類型。
- ResultSet實例通過執行查詢資料庫的語句生成。
- ResultSet實例具有指向當前行的指針,通過next()方法,將指針移動到下一行,有就返回true,沒有就返回false。預設情況下該實例不可更新,也就是只能迭代一次。
- ResultSet介面提供了從當前行檢索不同類型列值的get方法,均有兩個重載方法,分別更具列的索引編號和列的名稱檢索列值,其中使用列的索引編號會更高效,編號從1開始。對於不同的get方法,JDBC驅動程式嘗試將基礎數據轉換為與get方法相應的Java類型並返回。
- 常用方法:
方法 | 說明 |
---|---|
first() | 移動指針到第一行,如果結果集為空則返回false,否則返回true。如果結果集類型為TYPE_FORWARD_ONLY,將拋出異常 |
last() | .........最後一行.................. |
previous() | .........上一行,如果存在上一行則返回true,否則返回false........... |
next() | ........下一行,指針最初位於第一行之前,第一次調用該方法將移動到第一行,如果存在下一行則返回true,否則返回false |
beforeFirst() | .....ResultSet實例的開頭,即第一行之前。............. |
afterLast() | .......ResultSet實例的結尾,即最後一行之後。.................. |
absolute() | ......指定行,有一個int型參數,正數表示從前向後編號,負數表示從後往前編號,編號均從1開始,如果存在指定行則返回true,否則返回false................ |
relative() | ....相對於當前行的指定行,有一個int類型入口參數,正數表示向後移動,負數表示向前移動,視當前行為0,如果存在指定行則返回true,否則返回false,............. |
- 未完待續
三、源碼:
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關註微信公眾號:傅里葉變換,個人賬號,僅用於技術交流