📄 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 + -