postgresql数据库中与jdbc进行通讯的格式有二进制方式和文本方式。二进制方式这是针对某些数据类型而言的。那么若是想只经过文本方式来进行通讯,怎么解决了。下面提供了一段创建链接的方式,能够禁止jdbc经过二进制与postgresql进行通讯。java
private void disableBinary(Properties info) { int[] disableType = {Oid.BYTEA, Oid.INT2, Oid.INT4, Oid.INT8, Oid.FLOAT4, Oid.FLOAT8, Oid.TIME, Oid.DATE, Oid.TIMETZ, Oid.TIMESTAMP, Oid.TIMESTAMPTZ, Oid.INT2_ARRAY, Oid.INT4_ARRAY, Oid.INT8_ARRAY, Oid.FLOAT4_ARRAY, Oid.FLOAT8_ARRAY, Oid.VARCHAR_ARRAY, Oid.TEXT_ARRAY, Oid.POINT, Oid.BOX, Oid.UUID}; String dstring = null; int i = 0; for (i = 0; i < disableType.length; ++i) { if (i > 0) dstring = dstring + ","; if (dstring == null) { dstring = String.valueOf(disableType[i]); } else { dstring = dstring + String.valueOf(disableType[i]); } } PGProperty.BINARY_TRANSFER_DISABLE.set(info, dstring); } public void SelectUser() { Connection conn = null; String url = "jdbc:postgresql://172.30.12.10:1999/pgbench"; String username = "db_user"; String password = "0000"; try { Class.forName("org.postgresql.Driver").newInstance(); java.util.Properties info = new java.util.Properties(); info.setProperty("user", username); info.setProperty("password", password); disableBinary(info); conn = DriverManager.getConnection(url, info);
在上面代码中disableBinary函数禁止了全部jdbc中指定二进制进行通讯的数据类型。这样创建的链接就只会经过文本进行通讯了。sql
上面的disableBinary函数中的代码也能够使用一句代码来完成:PGProperty.BINARY_TRANSFER.set(info, false)。这句代码就能够把jdbc中全部的数据类型都指定为使用文本进行通讯。数据库