閱讀924 返回首頁    go 汽車大全


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 操作;

 

在了解參數的用法之後,為保證數據安全性,和數據庫數據的安全性維護,請根據需要慎重使用。

最後更新:2017-04-02 06:51:23

  上一篇:go ORACLE--邏輯架構(二)
  下一篇:go VS 添加jQuery智能提示