【问题标题】:ResultSet doesn't return values for DB2, but it return values if I try to do it manualyResultSet 不返回 DB2 的值,但如果我尝试手动执行,它会返回值
【发布时间】:2016-01-12 08:42:20
【问题描述】:

我试图从 resulset 中获取值,但它什么也没返回。 当我尝试通过普通 sql 执行此操作时,它会返回一些值。

    List<String> res = new ArrayList<String>();
    try {
        String query = "SELECT COLUMN_NAME FROM idoc.columns_to_show where user = ? "
                + DAO.DB2_UR_POSTFIX;

        Connection connection = Properties.getDocsConnection();
        try {
            PreparedStatement pr = connection.prepareStatement(query);
            try {
                pr.setString(1, user.getDomainName());
                ResultSet rs = pr.executeQuery();
                try {
                    while (rs.next()) {
                        res.add(rs.getString("COLUMN_NAME"));
                    }
                } finally {
                    rs.close();
                }
            } finally {
                pr.close();
            }
        } finally {
            connection.close();
        }

    } catch (SQLException e) {
        throw new RuntimeException(e);
    }

    return res;

【问题讨论】:

  • 什么是DAO.DB2_UR_POSTFIX
  • @sma 就在你身边;
  • 你的意思是DAO.DB2_UR_POSTFIX = "with ur";?您能否也请 e.printStackTrace() 并检查您是否遇到错误?
  • @Jan 不,没有任何错误。我找到了解决方案。检查我的答案。

标签: jdbc db2 resultset


【解决方案1】:

不要使用列名“user”,它是 DB2 数据库的保留名称。 因此我找不到任何结果。

【讨论】:

  • 还有转义作为解决查询的另一种方法
猜你喜欢
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
相关资源
最近更新 更多