天天看點

JDBC、Statement、execute、executeQuery、executeUpdate什麼是jdbc,什麼時候會用到jdbcjdbc的statement是什麼Statement的execute、executeQuery、executeUpdate差別是什麼

JDBC

  • 什麼是jdbc,什麼時候會用到jdbc
  • jdbc的statement是什麼
  • Statement的execute、executeQuery、executeUpdate差別是什麼

什麼是jdbc,什麼時候會用到jdbc

jdbc全稱就是java database connection,也就是java資料庫連接配接,通過jdbc我們可以操作關系型資料庫。jdbc的接口和相關類都儲存在java.sql包和javax.sql包裡面,可以用jdbc連接配接資料庫,執行sql查詢,存儲過程,并能夠處理傳回的結果。jdbc讓Java程式和jdbc驅動實作了松耦合,使得切換不同的資料庫更加簡單。

jdbc的statement是什麼

Statement是jdbc中用來執行資料庫sql查詢語句的接口。通過調用連接配接對象的getStatement()方法可以生成一個statement對象,然後通過調用它的execute(),executeQuery(),executeUpdate()方法來執行靜态sql語句。由于sql語句是程式中傳入的,如果不對使用者輸入進行校驗會引起sql注入的問題。預設情況下,一個Statement同時隻能打開一個ResultSet,如果想操作多個Result對象就需要建立多個Statement。Statement接口的所有execute方法在執行時都會預設關閉目前打開的ResultSet

Statement的execute、executeQuery、executeUpdate差別是什麼

  1. statement的execute(String query)方法可以執行任意sql查詢,如果查詢結果時ResultSet,這個方法就會傳回true,如果不是ResultSet,比如insert或者update,就會傳回false。我們可以通過它的getResultSet方法擷取ResultSet,或者可以通過它的getUpdateCount方法擷取更新記錄條數。
  2. statement的executeQuery(String query)方法用來執行select查詢,并且傳回ResultSet,即使查不到記錄傳回的ResultSet也不會為null。通常使用這個方法來執行查詢語句,如果執行的是insert或者update語句,就會抛出錯誤資訊:“executeQuery method can not be used for update”的java.util.SQLException.
  3. statement的executeUpdate(String query)方法用來執行insert,update或者delete(DML)語句,或者什麼也不傳回DDL語句。傳回值時int,如果是DML語句,傳回值就是更新記錄條數,如果是DDL語句,傳回值就是0.
  4. 除非不确定執行的是什麼語句采用execute(String query)方法,否則都應該使用executeQuery(String query)方法或executeUpdate(String query)方法