单例连接 + 单例准备好的语句

Posted

技术标签:

【中文标题】单例连接 + 单例准备好的语句【英文标题】:Singleton connection + singleton prepared statement 【发布时间】:2013-10-17 10:54:14 【问题描述】:

我正在用 mysql 服务器实现一个服务器。

我得出的结论是,我的所有查询都将使用准备好的语句发送。

我将为不同的目的制作多个单例准备语句(例如,选择令牌、插入/替换令牌、插入电话号码......)。

这是我的问题。

    为了使单例预处理语句表现良好,我是否应该在每次执行查询时关闭它? (仅关闭 ResultSet,不关闭准备好的语句或连接)

    单例预处理语句会比每次都创建一个语句更好吗?

【问题讨论】:

【参考方案1】:

简单的答案 - 每次都创建和关闭语句

如果您没有实现非常专业的批处理功能,那么创建和关闭准备好的语句将是一个微不足道的开销。

对于服务器应用程序来说,单例连接也不是一个好主意。任何时候只有一个线程可以处理一个连接。

【讨论】:

这取决于正在使用的 JDBC 驱动程序以及是否正在使用连接池。如果驱动程序和池都没有缓存语句,那么您将失去准备好的语句的好处。

以上是关于单例连接 + 单例准备好的语句的主要内容,如果未能解决你的问题,请参考以下文章

PHP单例模式

准备好的语句以及连接池

设计模式之单例模式(创建型)

单例模式

java的jdbc连接,单例连接对象还是spring jdbc连接?

传统的 DB 单例连接效果不佳