經常使用接口java
java.sql.Driver
sql
該接口是提供給數據庫開發廠商的,主要功能是描述驅動程序,提供驅動信息,最重要的是實現數據庫鏈接的抽象 Connection connect(String url, java.util.Properties info)throws SQLException
,若是某個數據庫要實現jdbc規範必須實現該接口。 開發者裝載該接口經過 Class.forName(String driverName)
進行,其中 driverName
爲全類名。數據庫
java.sql.Connection
bash
該接口是數據庫jdbc 鏈接的抽象層,主要生成SQL並向數據庫發送框架
java.sql.Statement
java.sql.PreparedStatement
java.sql.CallableStatement
同時事務級別 事務的commit,事務的callback,鏈接的生命週期 也由 Connection 來操做。大數據
事務的隔離級別url
int TRANSACTION_NONE = 0
無事務int TRANSACTION_READ_UNCOMMITTED = 1
讀取未提交int TRANSACTION_READ_COMMITTED = 2
讀取已提交int TRANSACTION_REPEATABLE_READ = 4
可重複讀取int TRANSACTION_SERIALIZABLE = 8
可序列化java.sql.Statement
spa
用於執行靜態SQL語句並返回它所生成結果的對象。code
類圖:cdn
Statement:由createStatement建立,用於發送簡單的SQL語句(不帶參數) 。
statement 沒有 set<Type>
之類的方法,因此sql必須做爲一個總體傳入。例如
//獲取statement
Statement statement = jdbcMysqlConnection.statement();
// sql 必須做爲總體進行操做
ResultSet resultSet = statement.executeQuery("select * from sys_user");
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
複製代碼
PreparedStatement :繼承自Statement接口,由preparedStatement建立,用於發送含有一個或多個參數的SQL語句。PreparedStatement對象比Statement對象的效率更高,而且能夠防止SQL注入,因此咱們通常都使用PreparedStatement,大數據量比較消耗資源。例如
//可傳入 字段佔位符 ?
PreparedStatement preparedStatement = jdbcMysqlConnection.preparedStatement("select * from sys_role where state =?");
// 對佔位符進行賦值操做 從1 開始 一旦使用佔位符 必須對佔位符進行賦值 才能 進行 execute系列操做
preparedStatement.setString(1,"1");
ResultSet resultSet = preparedStatement.executeQuery();
複製代碼
CallableStatement:繼承自PreparedStatement接口,由方法prepareCall建立,用於調用存儲過程
statement 經常使用方法:
execute(String sql)
:運行語句,返回是否有結果集executeQuery(String sql)
:運行select語句,返回ResultSet結果集。executeUpdate(String sql)
:運行insert/update/delete操做,返回更新的行數。addBatch(String sql)
:把多條sql語句放到一個批處理中。executeBatch()
:向數據庫發送一批sql語句執行。set<Type>(int colunmIndex,Type val)
系列接口PreparedStatement
回填參數值
java.sql.ResultSet
主要用來獲取sql執行後返回的結果集
獲取字段數據操做
- getString(int index)、getString(String columnName):得到在數據庫裏是varchar、char等類型的數據對象。
- getFloat(int index)、getFloat(String columnName):得到在數據庫裏是Float類型的數據對象。
- getDate(int index)、getDate(String columnName):得到在數據庫裏是Date類型的數據。
- getBoolean(int index)、getBoolean(String columnName):得到在數據庫裏是Boolean類型的數據。
- getObject(int index)、getObject(String columnName):獲取在數據庫裏任意類型的數據。
遊標操做
- next():移動到下一行
- previous():移動到前一行
- absolute(int row):移動到指定行
- beforeFirst():移動resultSet的最前面。
- afterLast() :移動到resultSet的最後面。