文档章节

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......

德哥
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 ......

德哥
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......

德哥
09/15
0
0
多平台向Postgresql 迁移

最近有个工作要把 一个SqlServer 迁移到 Postgresql 平台上,上网搜了搜,EnterpriseDB在这块做了很多工作, EnterpriseDB 的 Postgres Plus Advanced Server管理工具中有一个 mogiration t...

从前
2013/01/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ERC1155实践|区块链游戏的平行宇宙和为此而生的Enjin钱包

1 摘要 恩金(Enjin)花了大半年的时间一直在完善ERC-1155这个通证协议,毫不夸张地说,该标准是现有以太坊上最适用于游戏资产的通证标准,将主流游戏中道具涉及到的一切操作经过高度抽象之后...

HiBlock
36分钟前
1
0
Oracle发布开源的轻量级 Java 微服务框架 Helidon

近日,Oracle推出了一个新的开源框架Helidon,该项目是一个用于创建基于微服务的应用程序的Java库集合。和Payara Micro、Thorntail(之前的WildFly Swarm)、OpenLiberty、TomEE等项目一样,...

关注公众号_搜云库_每天更新
42分钟前
1
0
启动线程以及安全终止线程

启动 使用start()方法可以启动线程。 start()方法的含义是告知线程规划器线程已初始化完毕,可以分给这个线程时间片了(执行run()方法)。 安全终止线程 示例代码 import java.util.concurr...

karma123
48分钟前
1
0
Python+OpenCV 图像风格迁移(模仿名画)

现在很多人都喜欢拍照(自拍)。有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma、versa 等,可以把你的照片变成 梵高、毕加索、蒙克 等大师的风格。 这...

crossin
53分钟前
1
0
karabiner json语法

karabiner json语法 to_if_alone 如果同时制定了to, 那么to对应的key必须是非可见字符,例如control,shift或者command, 为什么呢? If to events are specified, to events are released befo...

黄威
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部