您的位置:首页 > 数据库

postgresql jdbc 禁止二进制格式进行通信

2016-06-14 00:00 609 查看
摘要: 本文通过代码来介绍禁止jdbc与数据库通过二进制进行通信的方法

postgresql数据库中与jdbc进行通信的格式有二进制方式和文本方式。二进制方式这是针对某些数据类型而言的。那么如果想只通过文本方式来进行通信,怎么解决了。下面提供了一段建立连接的方式,可以禁止jdbc通过二进制与postgresql进行通信。

[code=language-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中指定二进制进行通信的数据类型。这样建立的连接就只会通过文本进行通信了。

上面的disableBinary函数中的代码也可以使用一句代码来完成:PGProperty.BINARY_TRANSFER.set(info, false)。这句代码就可以把jdbc中所有的数据类型都指定为使用文本进行通信。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: