JAVA中查询出的结果集是否能更新(取决于各类数据库的JDBC是否实现了接口)

 
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();   
            }   
        }   
    }   
  
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值