文档章节

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

harris2016
 harris2016
发布于 2016/06/14 18:36
字数 344
阅读 25
收藏 1

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

    

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中所有的数据类型都指定为使用文本进行通信。

© 著作权归作者所有

共有 人打赏支持
harris2016
粉丝 10
博文 53
码字总数 30227
作品 0
杭州
程序员
私信 提问
JAVA存取PostgreSQL二进制类型bytea

经过测试:JAVA存取PostgreSQL的bytea类型均存在内存的限制问题(存取的数据过大会出现out of memory内存溢出的问题),EnterpriseDB对此做了优化。 取PostgreSQL中的bytea,并存储到硬盘上....

YuanyuanL
2013/08/09
0
0
PostgreSQL jdbc 错误代码映射(SQLSTATE)

标签 PostgreSQL , SQLSTATE , 错误代码 , org.postgresql.util.PSQLState 背景 Does such a class enumerating the PostgreSQL error codes already exist? Yes, it does: org.postgresql.u......

德哥
2018/10/05
0
0
ETL for Oracle to PostgreSQL 1 - Oracle Data Integrator (ODI)

标签 PostgreSQL , Oracle , ETL , Oracle Data Integrator , ODI 背景 原文 https://www.cdata.com/kb/tech/postgresql-jdbc-odi.rst 正文 ETL PostgreSQL in Oracle Data Integrator This ......

德哥
2018/05/06
0
0
PostgreSQL jdbc multi-host 配置与简单HA、Load Balance实现

标签 PostgreSQL , HA , jdbc , multi host , targetsessionattrs 背景 pg jdbc 与libpq一样,都是PG的连接驱动,都支持multi-master ,同时pg jdbc还支持了loadbalance。 《PostgreSQL libp......

德哥
2018/09/15
0
0
修改了数据库连接 可是db类型依然是

# 使用的数据库类型,根据db.type的值,下面对应类型的数据库连接要配置正确 db.type = mysql #db.type = postgresql #db.type = oracle #db.type = sqlserver #db.type = db2 # 使用postgre...

施立
2016/09/20
800
3

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 我想过年请假提前回家两天

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享王力宏的单曲《爱错》 《爱错》- 王力宏 手机党少年们想听歌,请使劲儿戳(这里) @Caremorele :这几天起床有点...

小小编辑
12分钟前
3
0
Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
2
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部