JDBC核心API

Statement

statement執(zhí)行查詢

創(chuàng)建Statement方式:

Connection.createStatement();

執(zhí)行INSERT,UPDATE和DELETE:

Statement.executeUpdate(sql);

通常執(zhí)行DDL

執(zhí)行SELECT:

Statement.executeQuery(sql);

通常執(zhí)行DML

PreparedStatement

開發(fā)中最常用的是PreparedStatement

Statement主要用于執(zhí)行靜態(tài)SQL語句,即內容固定不變的SQL語句。

Statement每執(zhí)行一次都要傳入SQL語句編譯一次,效率較差。

PreparedStatement是接口,繼承自Statement。

SQL語句提前編譯,executeQuery和executeUpdate不需要傳參??梢杂幸粋€或多個IN參數:
IN參數的值在SQL語句創(chuàng)建時未被指定,該語句為每個IN參數保留一個問號作為占位符,每個問號的值必須在語句執(zhí)行之前,通過適當的setInt活setString方法提供。

SQL Injection

對JDBC,SQL注入攻擊只對Statement有效,對PreparedStatement無效,因為PreparedStatement不允許在插入參數時改變SQL語句的邏輯結構

ResultSetMetaData

數據結果集的元數據,和查詢出來的數據集相關,從結果集中獲取

ResultSetMetaData resultSetMetaData = resultSet.getMetaData();

int columnCount = resultSetMetaData.getColumnCount();

String columnName = null;

for (int i = 1; i <= columnCount; i++) {
    columnName = resultSetMetaData.getColumnName(i);
    System.out.println("columnName = " + columnName);
}

可滾動結果集

常用的ResultSet,初始指針在第一行之前,只能使用next()方法將指針向后移動,不能反向??蓾L動結果的意味著,指針可以在結果集中任意移動。
會發(fā)生大量的IO,性能差,所以不常用。

創(chuàng)建方法如下:

Statement stmt = conn.createStatement(type,concurrency);
PreparedStatement stmt = conn.prepareStatement(sql, type, concurrency)
type取值:
TYPE_FORWARD_ONLY:只能向前移動,默認參數 
TYPE_SCROLL_INSENSITIVE:可滾動,不感知數據變化
TYPE_SCROLL_SENSITIVE:可滾動,感知數據變化
concurrency 取值:
CONCUR_READ_ONLY:只讀
CONCUR_UPDATABLE:可更新
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • JDBC 核心API Statement Statement執(zhí)行查詢 創(chuàng)建Statement的方式:Connect...
    駭客與畫家閱讀 269評論 0 0
  • 一.連接池(數據源) 1.直接使用DriverManager的問題 它沒有管理連接上限,并發(fā)量大時很容易導致數據庫...
    smallnumber閱讀 350評論 0 0
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,248評論 0 4
  • 關注我吧給我一個機會寫進你心里 我是影子這里是我們的微風清酒 付出的人都搶著先認輸時過境遷后享受孤獨 文丨影子圖丨...
    微風清酒閱讀 270評論 0 16
  • 我也不知道該怎樣給你驚喜,我也不知道這算不算驚喜,我也不知道你會不會喜歡… 說來也慚愧,馬上快四年了,這應該是陪你...
    爆seed哥閱讀 252評論 0 0

友情鏈接更多精彩內容