import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TestUpdate { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Connection con = null; Statement stat = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydb"; //con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root"); con = DriverManager.getConnection(url, "root", "root"); //ResultSet.TYPE_SCROLL_INSENSITIVE:对指针的移动不敏感,即指针可以随意移动 //ResultSet.CONCUR_READ_ONLY: 该常量指示不可以更新的 ResultSet 对象的并发模式 stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); rs = stat.executeQuery("select * ,name from people order by id"); /* while(rs.next()){ System.out.println(rs.getString("id")); } */ //取查询出第一行的数据 rs.next(); //打印第一行第一列的数据以INT类型显示出来 System.out.println(rs.getInt(1)); //更新第一行第一列的数据写入内存 rs.updateInt(1, 101); //用此 ResultSet 对象的当前行的新内容更新底层数据库 rs.updateRow(); //打印更新后第一行第一列数据 System.out.println(rs.getInt(1)); //插入新的一行 rs.moveToInsertRow(); //设置新的一行的数据 rs.updateInt(1, 102); rs.updateString(2, "test"); rs.updateString(3, "mytest"); //插入 rs.insertRow(); //光标移至该行 rs.moveToCurrentRow(); //移至最后一行 rs.last(); //删除该行 rs.deleteRow(); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException s){ s.printStackTrace(); }finally{ try{ if(con != null){ //如果con一开始就是null的话,如果不判断就一直出SQL异常,所以应该先判断一下 con.close(); con = null; } if(stat != null){ stat.close(); stat = null; } if(rs != null){ rs.close(); rs =null; } }catch(SQLException se){ se.printStackTrace(); } } } }