java [30] 可更新的和对更新敏感的结果集

需求:在查询的过程中,希望对数据做更改:

代码:查询username 如果他的salary 少于3000,则讲salary改为3000.

package day820;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Updateabletest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Readupd();
	}
	public static void Readupd(){
		
		Connection conn = null;
		PreparedStatement ps = null; 
		ResultSet rs = null;
		try {
			conn = jdbcUtils.getConnection();
			//3.创建语句
			//查询
			String sql = "select id,name,passwd,salary from T1 where id <5 ";
			//传递参数实现可更新
			ps = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_UPDATABLE);
			rs = ps.executeQuery();
			//在查询结果中对数据进行处理更新
			while(rs.next()){
				System.out.println(rs.getInt("id")+ "\t" +rs.getString("name")+"\t"
			+rs.getString("passwd")+"\t"+rs.getFloat("salary"));
				String name = rs.getString("name");
				//更新
				if ("haha".equals(name) && rs.getFloat("salary")<3000){
					rs.updateFloat("salary", 3000f);
					rs.updateRow();  //不加上这句不会更新数据库内容。
				}
				
			}}catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
					
			}finally {
				//6.释放资源
				//jdbcUtils.free(rs,st,conn);
				jdbcUtils.free(rs, ps, conn);
			}
	}

}

猜你喜欢

转载自blog.csdn.net/qq_38125626/article/details/81990479