- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在真的对这两者感到困惑,如下所示:1. 是在 JAVA 应用程序的整个运行期间仅将单例实例返回到数据库连接2. 是线程池连接的一般概念......我的意思是如果我们计划只有一个单例实例到数据库连接对象,为什么还要有池的概念,尽管我确实知道池的用途对于
这两个概念不是很相反吗,还是我在这里混淆了什么...?
最佳答案
在 JAVA 应用程序的整个运行期间是否只返回一个单例实例到数据库连接?
您可能不想为数据库连接返回一个Singleton
对象。如果不需要数据库并发,你可以选择这样做。在多线程环境中,最好的选择是使用连接池。
就是Thread pool connections的概念,笼统的说..
建立数据库连接是一个非常耗费资源的过程,涉及很多开销。此外,在多线程环境中,打开和关闭连接会使情况大大恶化。
在服务器中创建 JNDI 并在您的网络应用中使用它。
Context context=new InitialContext();
DataSource dataSource=(DataSource)
context.lookup("jdbc/test_jndi");
所以当DataSource
使用连接池
时,查找会从可用连接对象池中返回一个连接。如果没有可用连接,则查找会创建一个新连接。
Connection connection=dataSource.getConnection
("testuser","testpwd");
// ...
connection.close();
应用程序完成数据库处理后,它会显式关闭连接。这使得连接再次可用以再次重用。合用连接的关闭事件向合用模块发出恢复连接池的信号。
任何共享的资源都需要处理并发访问的开销,因此您希望通过不总是使用 单例
来减少开销。此外,为了减少资源密集型进程,连接池
是首选。
关于java - 线程池连接 vs 单例设计模式获取单个数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52641870/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!