ResultSet 游标权限获取问题

当我们在写数据库连接的时候,有时候回出现一些错误如:

java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY

先看下面一段代码

/**
     * 连接数据库用的驱动类型
     
*/

    
protected   final  String driver  =   " org.gjt.mm.mysql.Driver " ;

    
/**
     * 数据库URL
     
*/

    
protected   final  String dbURL  =   " jdbc:mysql://localhost:3306/mydbase " ;
    
/**
     * 数据库管理员用户名
     
*/

    
protected   final  String userName  =   " root " ;

    
/**
     * 数据库管理员密码
     
*/

    
protected   final  String userPwd  =   " 123456 " ;

    
/**
     * 数据库连接对象
     
*/

    
protected  Connection con  =   null ;

/*
*获取数据库连接
*/

    con 
=  DriverManager.getConnection(dbURL,  userName, userPwd);

/*
*获取连接句柄
*/

        Statement smt 
=  con.createStatement(
            ResultSet.TYPE_SCROLL_INSENSITIVE,
            ResultSet.CONCUR_UPDATABLE);

        ResultSet rs 
=  smt
            .executeQuery(
" SELECT * FROM CurrentAccount WHERE AccountID =  "
                
+  accountID);
        
while  (rs.next())
        
{
        withdrawCount 
= Integer.parseInt(rs.getString("Counter"));
        }

        rs.close();
        smt.close();
        con.close();

注意上面红字部分:

   Statement smt = con.createStatement(
            ResultSet.TYPE_SCROLL_INSENSITIVE,
            ResultSet.CONCUR_UPDATABLE);

呵呵,括号里是不是多了两个参数:

  ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE

 

这两个东西属于java.sql.ResultSet(大家可以看到我们的程序前面都有import java.sql.*;呵呵)

那这些参数有什么用呢?

 

ResultSet.TYPE_FORWARD_ONLY             在不设定的情况下,默认是这个,rs游标只能实现 next()操作;

 

ResultSet.TYPE_SCROLL_INSENSITIVE    数据在更新之后则无权再次获取数据集

ResultSet.TYPE_SCROLL_SENSITIVE        数据在更新之后则可以再次获取数据集

需要指定,可以实现rs 游标的afterLast()、previous()、absolute()、relative()、first()、last()操作(具体使用请自己查看java API文档);

 

 

ResultSet.CONCUR_READ_ONLY            在不设定的情况下为默认参数,

        只读:获取改数据库句柄的rs 游标只能读取数据库里的东西;

                                                                     可以实现select 操作;

 

ResultSet.CONCUR_UPDATABLE            可更新:获取改数据库句柄的rs 游标可以读取和更新数据库里的东西;

                                                                     可以实现 select  insert 操作;

 

在了解参数的用法之后,为保证数据安全性,和数据库数据的安全性维护,请根据需要慎重使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值