Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JDBC连接是否包含对其PreparedStatement的硬引用?_Jdbc_Oracle11g_Garbage Collection - Fatal编程技术网

JDBC连接是否包含对其PreparedStatement的硬引用?

JDBC连接是否包含对其PreparedStatement的硬引用?,jdbc,oracle11g,garbage-collection,Jdbc,Oracle11g,Garbage Collection,我想缓存我构建的准备好的语句。当它们建立在CG'd连接上时,我想忘记准备好的语句 我想做一个连接->语句的WeakHashMap,但这不起作用。语句包含对其连接对象的硬引用,因此连接永远不会被GC 因此,我可以保存一个连接对象的WeakHashMap,它指向为每个连接准备的语句的弱引用。但是,如果连接对象不包含对语句的硬引用,那么这些语句将得到GC'd。另一方面,如果是这样,那么一切都是甜蜜的 我们知道它是不是真的吗?好的。首先,行为没有定义。第二,答案是否定的——除非您硬引用,否则准备好的语句

我想缓存我构建的准备好的语句。当它们建立在CG'd连接上时,我想忘记准备好的语句

我想做一个连接->语句的WeakHashMap,但这不起作用。语句包含对其连接对象的硬引用,因此连接永远不会被GC

因此,我可以保存一个连接对象的WeakHashMap,它指向为每个连接准备的语句的弱引用。但是,如果连接对象不包含对语句的硬引用,那么这些语句将得到GC'd。另一方面,如果是这样,那么一切都是甜蜜的


我们知道它是不是真的吗?

好的。首先,行为没有定义。第二,答案是否定的——除非您硬引用,否则准备好的语句是GC'd

我认为我试图做的事情实际上可能是不可能的,因为java引用和我的代码没有创建连接和准备好的语句对象


哦,好吧。我会在需要时将新的PreparedStatements装入板条箱,并在使用后发布。

Oracle将为您缓存连接和语句。尝试开发自己的缓存不太可能有任何实际价值