首先介绍一下背景,我使用的是 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 等等。
我不确定这意味着什么,如果能提供任何帮助,我将不胜感激。我想知道从哪里开始解决问题。