execute、executeQuery和executeUpdate之間的區別
JDBC中Statement 接口提供了三種執行 SQL 語句的方法:executeQuery、executeUpdate 和 execute。使用哪一個方法由 SQL 語句所產生的內容決定。 1>方法executeQuery 如: //加載數據庫驅動 Class.forName("com.mysql.jdbc.Driver"); //使用DriverManager獲取數據庫連接 //使用Connection來創建一個Statment對象 //執行查詢語句 //把查詢結果輸出來 while (rs.next()) { System.out.println(rs.getInt(1) + "/t" + rs.getString(2)); 2>方法executeUpdate 用於執行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數據定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一個整數(int),指示受影響的行數(即更新計數)。對於 CREATE TABLE 或 DROP TABLE 等不操作行的語句,executeUpdate 的返回值總爲零。 如: //加載數據庫驅動 Class.forName("com.mysql.jdbc.Driver"); //使用DriverManager獲取數據庫連接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", //使用Connection來創建一個Statment對象 Statement stmt = conn.createStatement(); return stmt.executeUpdate(sql); 3>方法execute: Class.forName(driver); //獲取數據庫連接 conn = DriverManager.getConnection(url , user , pass); Nz7b t{cd
if (hasResultSet) { //獲取結果集 //ResultSetMetaData是用於分析結果集的元數據接口 int columnCount = rsmd.getColumnCount(); while (rs.next()) {//依次輸出每列的值 System.out.print(rs.getString(i + 1) + "/t"); } } else System.out.println("該SQL語句影響的記錄有" + stmt.getUpdateCount() + "條"); |