JDBC02-Statement,PreparedStatement,ResultSet

  1. stmt.executeQuery():執行查詢,返回結果集( ResultSet)
    int stmt.executeUpdate(String sql);// 發送insert,update,delete語句, 返回值int表示影響數據庫表的行數
  2. Statement 主要用於執行靜態SQL語句,即內容固定不變的SQL語句,Statement 每執行一次都要對傳入的SQL語句編譯一次,效率較差
    這裏寫圖片描述
  3. PreparedStatement 接口,繼承 Statement,使用 PreparedStatement 時,SQL語句已提前編譯,三種常用方法 execute,executeQuery和executeUpdate已被更改,以使之不再需要參數
  4. PreparedStatement 實例包含已事先編譯的 SQL 語句,SQL 語句可有一個或多個參數, 參數的值在 SQL 語句創建時未被指定,該語句爲每個 IN 參數保留一個問號(“?”)作爲佔位符
  5. con.prepareStatement(sql語句);創建PreparedStatement對象,ps.set類型(?的索引,?的值);設置參數
    這裏寫圖片描述
  6. 結果集( ResultSet):用來存儲查詢語句返回的結果集
    boolean rs.next(); 指針向下移動一行,有數據返回true 否則返回false
    rs.get類型(字段名);可以得到指定字段名的值
    這裏寫圖片描述
  7. JDBC對日期的支持
    *java.sql.Date 年月日
    *java.sql.Time 時分秒
    *java.sql.Timestamp 年月日時分秒
    上述三個日期都java.util.Date 的子類
  8. 元數據(MetaDate):數據的本質,數據的描述/概述,用來描述數據的數據 ,結果集元數據(ResultSetMetaDate):用來描述結果集的數據,如:返回的結果有幾列,幾行,列的類型是什麼等等…
  9. 對JDBC而言,SQL注入攻擊只對Statement有效,對PreparedStatement無效,因爲PreparedStatement不允許在插入參數時改變SQL語句的邏輯結構
    這裏寫圖片描述
    連接池
    這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章