【发布时间】:2013-07-19 19:18:52
【问题描述】:
“Hibernate 总是使用 PreparedStatement 调用数据库”引用here。 如果是这样,那么休眠缓存编译查询在哪里,数据库驱动程序是否缓存它们。
我阅读了有关 c3p0 的信息。如果hibernate默认缓存PreparedStatement,那么c3p0中的hibernate.c3p0.max_statements有什么用。 如果 hibernate 默认不这样做,那么连接池对于缓存准备好的语句是强制性的。
有人可以澄清一下吗?
【问题讨论】:
-
“总是使用
PreparedStatement”并不意味着“总是缓存PreparedStatements”——它们还提供参数插值。由于您一开始就在乞求这个问题,其余的都是从这个错误的假设中得出的,没有任何意义。您当然可以查找hibernate.c3p0.max_statements的文档。连接池可以在内部维护每个连接语句的缓存,而完全不涉及 Hibernate。不知道 c3p0 是否这样做,但他们也有文档。
标签: java performance hibernate jakarta-ee