坚持PreparedStatements是否昂贵?(Java和JDBC)

sbo*_*ook 7 java mysql jdbc prepared-statement

我正在试图弄清楚在创建数据库连接时是否有效缓存我的所有语句,或者我是否应该创建最常用的语句,并在需要时创建其他语句.

所有客户端线程中创建所有语句似乎很愚蠢.任何反馈将不胜感激.

Bal*_*usC 10

一个像样的数据库将已经缓存它们.只需Connection#prepareStatement()在您实际需要执行查询时触发.您实际上也没有其他选择,因为应该在尽可能短的范围内获取和关闭连接,语句和结果集,即在try-finally与执行查询的方法相同的块中.

依次打开和关闭每个查询的连接可能确实很昂贵.一个常见的解决方案是使用连接池,例如c3p0.