0

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 での main 関数の出力。データベースから文字列全体を取得します。しかし、正確なコードは、AIX マシンで暗号化された値を提供します。

AIX マシンでの出力 [B@62637268

4

1 に答える 1

0

問題を解決しました。問題はコネクタ ファイルにありました。古いバージョンのコネクタ ファイルを使用していました。

使用していた 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

私の質問を調べて、私を助けようとしてくれてありがとう。本当に感謝。

于 2013-01-28T16:54:41.970 に答える