<分区>
因为 PreparedStatement
包含预编译的 sql 命令,所以当我们创建这种类型的池时,为了不创建和销毁这个对象太多(就像线程池一样)。
这有意义吗?还是我太糊涂了?
<分区>
因为 PreparedStatement
包含预编译的 sql 命令,所以当我们创建这种类型的池时,为了不创建和销毁这个对象太多(就像线程池一样)。
这有意义吗?还是我太糊涂了?
最佳答案
我认为您正在寻找的是准备好的语句的缓存。一些连接池作为一个可选的调整参数为你做这件事(Weblogic,我认为 JBoss 也是)。对于相同的准备语句将在运行时 session 中多次使用的情况非常方便,甚至不一定在同一事务中。您使用 static 基本上意味着您只认为您将拥有其中一个,而不需要为多个语句使用缓存,因此从理论上讲它会起作用。我不确定的是准备好的语句缓存是否可以跨连接共享,或者它是否特定于连接。
关于java - 有一个sql PreparedStatement池有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980871/