⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 updatewithresultset.java

📁 本代码以J2SE 5.0为开发环境
💻 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 + -