Postgresql JDBC问题读取和写入字节

Postgresql JDBC问题读取和写入字节,postgresql,postgresql-9.3,jdbc-postgres,Postgresql,Postgresql 9.3,Jdbc Postgres,我正在尝试将我的java应用程序从PostgreSQL 8.4迁移到最新版本。 我在从数据库读取字节数据时遇到了一个问题。 我正在将以字节为单位的IP地址插入表中,并尝试在不同的过程中重新构建它。但在重建时,我可以看到额外的“/”字符 这就是我正在做的事情 stat = con.prepareStatement("insert into IPADDR(IP_ADDR, LSVR_ID) values(?, ?)"); InetAddress iaddr = InetAddress.getLoop

我正在尝试将我的java应用程序从PostgreSQL 8.4迁移到最新版本。 我在从数据库读取字节数据时遇到了一个问题。 我正在将以字节为单位的IP地址插入表中,并尝试在不同的过程中重新构建它。但在重建时,我可以看到额外的“/”字符 这就是我正在做的事情

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");
当我在插入前和检索后打印字节时,我可以看到它们不一样。 用于插入其地址之前为127.0.0.1的本地环回地址 "[B@106bdde4" 然而,从DB得到的数据看起来像[B@6d7eaa83当我用它构造字符串时 它显示额外的“/”字符==>“/127.0.0.1”
请任何人帮助解决此问题

为什么要使用
setBytes
在准备好的语句中设置IP地址?列
IP\u addr
的数据类型是什么?code-Ipaddress.getaddress()将返回bytearray本身。由于这是一个遗留应用程序,因此无法对其进行太多更改。ip_addr列的类型为bytea。