java - 有一个sql PreparedStatement池有意义吗?

标签 java sql postgresql design-patterns pool

<分区>

因为 PreparedStatement 包含预编译的 sql 命令,所以当我们创建这种类型的池时,为了不创建和销毁这个对象太多(就像线程池一样)。
这有意义吗?还是我太糊涂了?

最佳答案

我认为您正在寻找的是准备好的语句的缓存。一些连接池作为一个可选的调整参数为你做这件事(Weblogic,我认为 JBoss 也是)。对于相同的准备语句将在运行时 session 中多次使用的情况非常方便,甚至不一定在同一事务中。您使用 static 基本上意味着您只认为您将拥有其中一个,而不需要为多个语句使用缓存,因此从理论上讲它会起作用。我不确定的是准备好的语句缓存是否可以跨连接共享,或者它是否特定于连接。

关于java - 有一个sql PreparedStatement池有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980871/

相关文章:

java - JAVA中随机初始化BitSet

java - 如何在运行时过滤 java 对象列表,其中我要过滤的变量事先未知?

sql - 仅选择表中每个标识符的最新值

PostgreSQL - 别名列和 HAVING

java - 如何将字符串转换为日期对象?

mysql - 在 groupby 期间聚合满足条件的列的部分部分

mysql - 基于两列的 SQL 交叉表

mysql - 如何获得链接到第三个表的两个表的总和

PostgreSQL 条件选择

java - EJBObject 在客户端之间共享?