需求:在查询的过程中,希望对数据做更改:
代码:查询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);
}
}
}