我正在尝试将我的 java 应用程序从 PostgreSQL 8.4 迁移到最新版本。我面临从数据库读取字节数据的问题。我将 IpAddress 以字节为单位插入到表中,并尝试在不同的进程中将其重建回来。但是在重建时,我可以看到这里额外的“/”字符正是我正在做的事情。
stat = con.prepareStatement("insert into IPADDR(IP_ADDR, LSVR_ID) values(?, ?)");
InetAddress iaddr = InetAddress.getLoopbackAddress();
stat.setBytes(1, iaddr.getAddress());
stat.setInt(2, ID);
stat.executeUpdate();
然后像这样读回来
stat = con.prepareStatement("select IP_ADDR from IPADDR");
当我在插入之前和检索之后打印字节时,我可以看到它们不一样。对于本地环回地址,在插入其“[B@106bdde4”之前为 127.0.0.1,但是从 DB 获得的地址看起来像 [B@6d7eaa83,当我从中构造字符串时,它显示了额外的“/”字符 ==>“/127.0 .0.1" 谁能帮忙解决这个问题