【问题标题】:Issue while retrieving data from the mySQL database in AIX system从 AIX 系统中的 mySQL 数据库检索数据时出现问题
【发布时间】:2013-01-09 20:57:27
【问题描述】:

我正在尝试从 MySQL 数据库表中检索数据。为此,我在各种平台上使用以下代码。我的代码在 Windows 和 Linux 平台上运行良好。但是当我在 AIX 6.1 中使用相同的代码时,它不会检索到正确的数据。

主要功能:

String storedstring = objDBUtil.lookup(0);
logger.info(storedstring);

数据库实用功能:

public String lookup(String number) throws Exception {
    String sql = "SELECT info FROM records WHERE Snumber=?";

    Connection dbConn = connect();
    try {
        PreparedStatement stmt = dbConn.prepareStatement(sql);

    try {
           stmt.setString(1, number);

           ResultSet rs =  stmt.executeQuery();

            try {
                if (!rs.next()) {
                    throw new TException("does not exist in the database");
                }
                return  rs.getString(1);
            } catch (Exception e) {
                logger.info("Unexpected exception caught during auth: " + e.getClass().toString() + " " + e.getMessage());
                return null;
            }finally {
                rs.close();
            }
        } finally {
            stmt.close();
        }
    } finally {
        dbConn.close();
    }
}

Windows 上主函数的输出,我从数据库中获取整个字符串。但是确切的代码给了我在 AIX 机器上的加密值。

AIX 机器上的输出 [B@62637268

【问题讨论】:

  • 不是加密值。它是对象的toString() 方法的返回值,它是booleans 的数组,JVM 用数字62637268 唯一标识它(有点像指针,但你知道,Java 没有指针)。为了比较,测试以下代码:new Object().toString();
  • 与问题无关:此外,我想知道number 是否真的必须是字符串而不是 int 或 BigInteger,这还可以防止格式错误或恶意参数的利用。
  • @ignis 基于javadoc[B表示字节数组而不是布尔值,作为数据库查询的结果更合理。 s
  • @billc.cn 是的,你是对的,对不起。
  • INFO 字段的数据类型是什么?而不是 rs.getString(1) 你可以尝试 rs.getObject(1) 看看你得到了什么。这应该会给你一些关于如何进行的想法。

标签: java mysql database linux aix


【解决方案1】:

我解决了这个问题。问题出在连接器文件上。我使用的是旧版本的连接器文件。

我使用的 MySQL 版本: mysql-5.5.2-m2-aix5.3-powerpc-64bit

具有上述 mysql 的 Mysql 连接器的非工作版本: mysql-connector-java-3.1.7-bin.jar

带有上述mysql的MySQL连接器的工作版本: 新版本:mysql-connector-java-5.1.6-bin.jar

感谢大家调查我的问题并试图帮助我。非常感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多