sql介面
❶ 在sql中, statement, PreparedStatement有什麼用
(1) Statement —— SQL語句執行介面
Statement介面代表了一個資料庫的狀態,在向資料庫發送相應的SQL語句時,都需要創建Statement介面或者PreparedStatement介面。在具體應用中,Statement主要用於操作不帶參數(可以直接運行)的SQL語句,比如刪除語句、添加或更新。
(2) PreparedStatement —— SQL語句預編譯介面
PreparedStatement也執行相應的SQL語句。它繼承於Statement介面,除了具備Statement所有功能,還可以對SQL語句進行預處理。
主要方法:
① ResultSet executeQuery() throws SQLException
在此 PreparedStatement 對象中執行 SQL 查詢,並返回該查詢生成的 ResultSet 對象。從不返回 null;如果發生資料庫訪問錯誤或者 SQL 語句沒有返回ResultSet 對象則拋出SQLException異常。
② int executeUpdate() throws SQLException
在此 PreparedStatement 對象中執行 SQL 語句,該語句必須是一個 SQL INSERT、UPDATE 或 DELETE 語句;或者是一個什麼都不返回的 SQL 語句,比如 DDL 語句。
返回值int表示影響的記錄條數,一條都沒有則返回0;
③ boolean execute()throws SQLException
在此 PreparedStatement 對象中執行 SQL 語句,該語句可以是任何種類的 SQL 語句。
有結果集則返回true, 沒有結果集則返回false;
④各種set方法
將指定位置的參數設置為指定的類型。比如ps.setString(3, 「tarena」);
(3) ResultSet —— 結果集操作介面
ResultSet介面是查詢結果集介面,它對返回的結果集進行處理。ResultSet是程序員進行JDBC操作的必需介面。
(4) ResultSetMetaData —— 元數據操作介面
ResultSetMetaData是對元數據進行操作的介面,可以實現很多高級功能。Hibernate運行資料庫的操作,大部分都是通過此介面。可以認為,此介面是SQL查詢語言的一種反射機制。ResultSetMetaData介面可以通過數組的形式,遍歷資料庫的各個欄位的屬性,對於我們開發者來說,此機制的意義重大。
JDBC通過元數據(MetaData)來獲得具體的表的相關信息,例如,可以查詢資料庫中有哪些表,表有哪些欄位,以及欄位的屬性等。MetaData中通過一系列getXXX將這些信息返回給我們。
資料庫元數據 Database MetaData 使用connection.getMetaData()獲得
MetaData包括: 包含了關於資料庫整體元數據信息。
結果集元數據 Result Set MetaData 使用resultSet.getMetaData()獲得
比較重要的是獲得表的列名、列數等信息。
元數據對象:ResultSetMetaData meta = rs.getMetaData();
欄位個數:meta.getColomnCount();
欄位名字:meta.getColumnName();
欄位JDBC類型:meta.getColumnType();
欄位資料庫類型:meta.getColumnTypeName();