在我的Java应用程序中,我使用LargeObject接口编写lo(大型对象)类型的二进制数据:
LargeObjectManager lLOManager = ((org.postgresql.PGConnection) aDatabaseConnection).getLargeObjectAPI();
long oid = lLOManager.createLO();
LargeObject lo = lLOManager.open(oid, LargeObjectManager.WRITE);
if (aBLOB != null)
lo.write(aBLOB);
lo.close();
读取表时,我使用相同的api来获取输入流:
LargeObjectManager lLOManager = ((org.postgresql.PGConnection) aDatabaseConnection).getLargeObjectAPI();
long lOid = aRs.getLong(aIndex);
if (lOid != 0)
{
LargeObject lObj = lLOManager.open(lOid, LargeObjectManager.READ);
inputStream = lObj.getInputStream();
lObj.close();
}
但是,当我尝试读取流时,我得到一个异常:
int number = inputStream.read()
或者替代地
byte[] byteArray = new byte[1024];
int number = inputStream.read(byteArray);
例外:
org.postgresql.util。PSQLException:错误:大型对象描述符无效:0
我在这里总结了代码,因为在我的app里是分布式的。关键是当前来自inputstream的内容被读取,而流来自的db连接已经关闭。然而,这段代码曾经在postgres上运行过,现在仍然适用于oracle。我尝试使用postgres驱动程序9.3和42.1.4以及Postgres 9.2。
我的问题:从sql resultset派生的java inputstream独立于db连接和resultset的状态吗?
关闭大对象后,无法读取它。
此外,打开和读取大型对象必须发生在一个数据库事务中。大对象在事务结束时关闭。
我们有一个n层应用程序,我们正在读取postgres数据库中存储的BLOB对象。 有时,当我们试图通过输入流访问blob对象时,我们会得到“org . PostgreSQL . util . psql exception:ERROR:invalid large-object descriptor:0”在阅读其他博客后,每当我们试图在事务之外访问BLOB时(事务已提交),都会出现此异常。 但是,在我
一般来说,一个描述器是一个有“绑定行为”的对象属性 (object attribute),它的访问控制被描述器协议方法重写。 这些方法是 __get__(), __set__() , 和 __delete__() 。 有这些方法的对象叫做描述器。 默认对属性的访问控制是从对象的字典里面 (__dict__) 中获取 (get) , 设置 (set) 和删除 (delete) 。 举例来说, a.x
概述 JavaScript 提供了一个内部数据结构,用来描述对象的属性,控制它的行为,比如该属性是否可写、可遍历等等。这个内部数据结构称为“属性描述对象”(attributes object)。每个属性都有自己对应的属性描述对象,保存该属性的一些元信息。 下面是属性描述对象的一个例子。 { value: 123, writable: false, enumerable: true,
问题内容: 请帮我。我不知道为什么这段代码不起作用。 它给我一个错误:“对象作为React子对象无效(找到:带有键{itemss}的对象)。如果要渲染子对象的集合,请改用数组。” 为什么{i.title}是对象。这只是一个字符串。我怎样才能解决这个问题?以及实际上如何迭代嵌套对象? 问题答案: 问题是因为你回来了 这是的等效即 您将返回具有键和的对象。你可以写 要么 要么 PS请注意,前两种方法将
问题内容: 我正在尝试使用用户代理将json设置为一种状态,但出现错误: 未捕获的不变违规:对象作为React子对象无效(找到:具有键{…}的对象)。如果您打算渲染孩子的集合,请使用数组代替,或者使用React附加组件中的createFragment(object)包装对象。 设置状态的方法: 服务 杰森 问题答案: 您无法执行此操作:由于您的错误提示您尝试执行的操作无效。您正在尝试将整个数组呈现
问题内容: 我正在制作一个运行ASP.NET WebService的Android应用程序。Webservice发送一个JSON对象,应用程序解析该对象并显示在屏幕上。在一种情况下,JSON对象太大,并且出现Findered Binder Transaction错误。我的解决方案是获取该JSON对象并将其嵌入到应用程序代码中,这样就无需从服务器获取该JSON对象。你能告诉我我可以做的其他事情吗?还