加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-05-25 06:44:55 所属栏目:编程 来源:网络整理
导读:哪一个是在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包装在相同其他类的署理中,因此也许无法会见特定于供给商的要领.这不是什么大题目:你不该该编写特定于供给商的数据库代码.

(编辑:湖南网)

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

    热点阅读