?? updatewithresultset.java
字號:
package book.database;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 本例演示使用ResultSet更新數據庫的數據. 包括修改、插入和刪除
*/
public class UpdateWithResultSet {
/**
* 使用ResultSet可以更新數據庫的數據,前提是與之相連的Statement沒有被關閉。
* @param con
*/
public static void update(Connection con){
String sql = "SELECT * FROM student_basic";
Statement sm = null;
ResultSet rs = null;
try {
// 創建Statement
// ResultSet.TYPE_SCROLL_SENSITIVE表示在ResultSet中可以隨心所欲的先前向后移動游標,
// 同時ResultSet的值有所改變的時候,它可以得到改變后的最新的值。
// ResultSet.CONCUR_UPDATABLE表示在ResultSet中的數據記錄可以任意修改,然后更新會數據庫
sm = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = sm.executeQuery(sql);
/***用ResultSet更新第一條數據***/
// 指針移到第一條數據
rs.absolute(1);
// 修改數據
rs.updateDouble("score", 70);// 修改score列
rs.updateString(5, "updated by ResultSet!");// 修改第5列
// 如果想取消對當前記錄的修改,可以取消
rs.cancelRowUpdates();
System.out.println("準備用ResultSet修改一條記錄!");
// 如果決定修改,則使用updateRow方法提交修改
rs.absolute(1);// 必須再調用一次absolute,因為,
rs.updateDouble("score", 70);
rs.updateString(5, "updated by ResultSet!");
// 將修改提交到數據源
rs.updateRow();
OperateDB.showResultSet(rs);
/***用ResultSet插入一條數據***/
System.out.println("準備用ResultSet插入一條記錄!");
// 指針移動到插入點
rs.moveToInsertRow();
// 為新數據設置值
rs.updateString("name", "mike");
rs.updateInt("age", 18);
rs.updateDouble("score", 88);
// 將插入提交到數據源
rs.insertRow();
OperateDB.showResultSet(rs);
/***用ResultSet刪除一條數據***/
rs.last();
System.out.println("準備用ResultSet刪除最后一條記錄!" );
rs.deleteRow();
OperateDB.showResultSet(rs);
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 關閉Statement
OperateDB.closeStatement(sm);
}
}
public static void main(String[] args) throws ClassNotFoundException,
SQLException {
String dbName = "studentdb";
String userName = "test";
String password = "test";
Connection con = null;
try {
// 獲得數據庫連接
con = DBConnector.getMySQLConnection(null, null, null, dbName,
userName, password);
// 更新數據庫
UpdateWithResultSet.update(con);
} catch (ClassNotFoundException e1) {
throw e1;
} catch (SQLException e2) {
throw e2;
} finally {
// 關閉數據庫連接
OperateDB.closeConnection(con);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -