天天看點

中繼資料-DBUtils

1.中繼資料

中繼資料:資料庫、表、列的定義資訊。

Connection.getMetaData()

DataBaseMetaData對象

getURL():傳回一個String類對象,代表資料庫的URL。

getUserName():傳回連接配接目前資料庫管理系統的使用者名。

getDriverName():傳回驅動驅動程式的名稱。

getPrimaryKeys(String catalog, String schema, String table):傳回指定表主鍵的結果集

getTables()

MySQL不支援擷取參數類型,但是在資料庫的url後跟上參數就可以支援了,但是列印出來參數的類型都是varchar

     jdbc:mysql:///day12?generateSimpleParameterMetadata=true

PreparedStatement . getParameterMetaData()

獲得代表PreparedStatement中繼資料的ParameterMetaData對象。

Select * from user where name=? And password=?

ParameterMetaData對象

getParameterCount() 獲得指定參數的個數

getParameterTypeName(int param) 獲得指定參數的sql類型

getParameterType異常處理

Parameter metadata not available for the given statement

url後面拼接參數

?generateSimpleParameterMetadata=true

ResultSet. getMetaData()

獲得代表ResultSet對象中繼資料的ResultSetMetaData對象。

ResultSetMetaData對象

getColumnCount() 傳回resultset對象的列數

getColumnName(int column) 獲得指定列的名稱

 getColumnTypeName(int column)獲得指定列的類型

2.DBUtils實作增删改查

導入MySQL的驅動包,c3p0的包,c3p0的配置檔案

3.DBUtils_ResultSetHander的實作類

ArrayHandler:把結果集中的第一行資料轉成對象數組。

ArrayListHandler:把結果集中的每一行資料都轉成一個對象數組,再存放到List中。

BeanHandler:将結果集中的第一行資料封裝到一個對應的JavaBean執行個體中。

BeanListHandler:将結果集中的每一行資料都封裝到一個對應的JavaBean執行個體中,存放到List裡。

MapHandler:将結果集中的第一行資料封裝到一個Map裡,key是列名,value就是對應的值。

MapListHandler:将結果集中的每一行資料都封裝到一個Map裡,然後再存放到List

ColumnListHandler:将結果集中某一列的資料存放到List中。

KeyedHandler(name):将結果集中的每一行資料都封裝到一個Map裡(List<Map>),再把這些map再存到一個map裡,其key為指定的列。

ScalarHandler:擷取結果集中第一行資料指定列的值,常用來進行單值查詢

DBUtils

    1.DbUtils

    工具類

    2.QueryRunner -- 兩行代碼搞定增删改查

    (1)QueryRunner() --需要控制事務時,使用這組方法

    intupdate(Connection conn, String sql)

    Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.

    intupdate(Connection conn, String sql, Object... params)

    Execute an SQL INSERT, UPDATE, or DELETE query.

    intupdate(Connection conn, String sql, Object param)

    Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.

    <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh)

    Execute an SQL SELECT query without any replacement parameters.

    <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)

    Execute an SQL SELECT query with replacement parameters.

    (2)QueryRunner(DataSource ds) --不需要控制事務用這組方法

    intupdate(String sql)

    Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters.

    intupdate(String sql, Object... params)

    Executes the given INSERT, UPDATE, or DELETE SQL statement.

    intupdate(String sql, Object param)

    Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter.

    <T> T query(String sql, ResultSetHandler<T> rsh)

    Executes the given SELECT SQL without any replacement parameters.

    <T> T query(String sql, ResultSetHandler<T> rsh, Object... params)

    Executes the given SELECT SQL query and returns a result object.

繼續閱讀