从servlet访问Oracle 8i表时的奇怪行为

时间:2009-04-10 08:34:57

标签: java oracle servlets cachedrowset

首先是一个小背景,我正在使用jdk 1.6。我在Oracle 8i DB中有一个2列表,它包含一个非常简单的字映射代码。没有奇怪的人物。两列都是varchar。

从我的桌面计算机上执行以下操作时:

        OracleDataSource ods = new OracleDataSource();

        ods.setDriverType("thin");
        ods.setServerName("DBserver.db");
        ods.setDatabaseName("DB");
        ods.setPortNumber(1527);
        ods.setUser("user");
        ods.setPassword("password");

        Connection connection = ods.getConnection();
        Statement stmt = connection.createStatement();
        ResultSet res = stmt.executeQuery(SQL);

        CachedRowSet crs = new CachedRowSetImpl();
        crs.populate(res);
        while (crs.next()) {
            System.out.println("ID: " + crs.getString(1) +
                               ",  Name: " + crs.getString(2));
        }

一切正常,我得到了我期望的结果(getString(1)和getString(2)的返回值与它们存储在表中的完全一样)

但是:

当我在坐在Tomcat服务器上的servlet中执行相同的确切代码时(我使用一个简单的applet servlet模型来访问该表并返回对applet的响应),crs.getString(int)返回类似的字符串:0x53,0x54,0x4E等等。

我不确定这意味着什么,并感谢任何帮助。我想知道从哪里开始解决这个问题。

1 个答案:

答案 0 :(得分:1)

Oracle 8i已经很老了。我相信1999年或2000年。您的jdk和Tomcat以及Oracle和JDBC的组合是否经过认证/支持?