Java-DB2 JDBC:“相同”查询给出不同的结果

我被分配去开发一个小的Java应用程序来处理来自DB2数据库的某些数据(用于记录业务交易),并且我对datbase的内部设置了解得很清楚.当前,我正在努力找出为什么在我的应用程序上执行的查询(通过JDBC)与在Quest Central for DB2客户端上执行的直接查询给出的结果集不同的原因.

    String query = "SELECT DISTINCT SYSTEM_NME FROM MISUSER.USAGE_LOGGER";

    try {
        Connection conn = DB2Connect.getDB2Connection();
        Statement stmt = conn.createStatement();

        ResultSet rs = stmt.executeQuery(query);
        while(rs.next()){
            retval.add(rs.getString(this.code.column_name));
        }

    } catch (SQLException e) {...

上面的代码返回一个有7行的ResultSet对象,而在我的db2客户机上执行的同一查询返回了30行以上.如前所述,我对数据库的使用经验很少,我需要某种想法才能使同一查询产生两个不同的结果.

解决方法:

几个原因.

>它不是相同的数据库和/或架构.
>该表具有行级安全性(DB2具有此功能),并且已登录的JDBC用户对没有返回的权限没有足够的权限.
>在未提交的同一事务中插入并选择了很多行.

上一篇:java-JDBC 4是否完全兼容JDBC 3?


下一篇:不负好时光——《Netty in Action》中文版《Netty实战》翻译手记