加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

java – MySQL在Tomcat中的最佳用法?

发布时间:2021-05-26 07:33:39 所属栏目:MySql教程 来源:网络整理
导读:哪一个是在Tomcat中使用MySQL的更好方法: ????A)只要会话有效,就为用户分配数据库连接. [要么] ????B)打开与DB的连接,每次请求都来到服务器,当它关闭时. ????C)连接池. [最佳答案]最佳答案原动力 在任何类型的请求 回复系统中 无论是http,ftp还是数据库调用

哪一个是在Tomcat中使用MySQL的更好方法:
????A)只要会话有效,就为用户分配数据库连接. [要么]
????B)打开与DB的连接,每次请求都来到服务器,当它关闭时.
????C)连接池. [最佳答案] 最佳答案 原动力

在任何类型的请求 – 回复系统中 – 无论是http,ftp还是数据库调用 – 保持一个连接池可供客户端使用是有意义的.在每个请求期间构建和拆除连接的成本很高(对于客户端和服务器而言都是如此),因此拥有一个池,多个线程可以从中“检出”连接以供其使用,这是一个很好的模式.

履行

JDBC API提供了围绕任意数量的数据库实现的包装器,这意味着调用者可以(大部分)不知道他们正在调用什么类型的数据库.这种抽象允许编码人员创建通用库,为任何类型的JDBC连接提供连接池.

这是连接池的Sun page和MySQL的here’s one.

由于调用者可能只使用JDBC方法,因此结帐可能看起来像创建连接的请求,而checkin只是关闭连接的调用者,即调用者不知道他们正在使用连接池,因为语义无法区分使用单一连接创建/拆除解决方案.这是件好事;这是真正的OO.

图书馆

那么有哪些库可以使这更容易?

> c3p0 – 以每个人最喜欢的协议droid命名,这个库提供连接池和预处理语句池(我相信这是PreparedStatement对象的对象池).

他们网站上的文档非常详尽.我实际上已经在我的桌子上打印了一份物理副本,因为我在调整时需要查阅它.所有配置都以JavaBeans样式完成,这使得使用它变得轻而易举.

它被广泛部署并在压力下站起来.我已经用它来做几十甚至几十万个每秒事务,多台机器和每台机器多个线程连接到多个数据库.

他们似乎有一个特别关于配置c3p0供Tomcat使用的appendix,所以你可能希望检查一下.
> DBCP – 名称较少的Apache DBCP(用于“数据库连接池”)与c3p0完全相同.这个discussion似乎不鼓励使用它,认为c3p0更积极地维护.我真的不记得为什么我选择c3p0而不是DBCP用于我的上一个项目(可能熟悉),但是如果你想让DBCP看一下,那就继续吧.

以下是有关DBCP的一些Stack Overflow问题:

> Connection pooling options with JDBC: DBCP vs C3P0
> Is DBCP (Apache Commons Database Connection Pooling) still relevant?

我不想成为负面的南希,但我不认为DBCP是你想要的.
> BoneCP – 也许创造性地命名,但听起来有点奇怪.我从来没用过它.作者说这是really fast,他可能是对的.这似乎是最不成熟的 – 至少在时间上 – 你的所有选择,但你应该试一试,看看它是否符合你的需要.

缺点

您将DataSource包装在类似其他类的代理中,因此可能无法访问特定于供应商的方法.这不是什么大问题:你不应该编写特定于供应商的数据库代码.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读