如何连接 Derby 数据库和 Servlet?

Posted

技术标签:

【中文标题】如何连接 Derby 数据库和 Servlet?【英文标题】:How to connect Derby Database with Servlet? 【发布时间】:2011-01-20 09:23:25 【问题描述】:

我以前从未连接到 java 中的数据库。我可以知道是否应该使用 servlet 访问 derby 数据库吗?

我已经检查过了:How do I access a database from my servlet or JSP? 但是我在文章上看到cmets说这是一种不好的连接方式。谁能解释或向我展示我应该编写代码以访问我的 derby 数据库的最佳方式吗?

非常感谢。

【问题讨论】:

【参考方案1】:

他们确实没问题,在暗示这一点。我们不直接从 Servlet 或 JSP 访问数据库,它们都是 Web 层的,不是吗?

那么,该怎么办?获取 JDBC 教程。 official one 是这里的绝佳选择。这将为您提供从 Java 连接到数据库的好主意,并掌握 JDBC API。之后你应该去阅读DAO pattern,以及我们如何employ that in real apps。

此外,我认为您还应该阅读有关MVC pattern 的信息,因为在我看来,您对此也不是很清楚。

一旦您了解所有这些并使用所有这些东西想出一个玩具般的应用程序。下一步是研究Connection Pooling 机制。

【讨论】:

【参考方案2】:

由于您使用的是servelt,因此您必须使用容器行Apache Tomcat。你应该定义一个像http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html 这样的连接池。如果您使用任何其他容器,那么它也将具有类似的设置。

其他选项是创建一个单独的 DBManager 类,它负责初始化和返回连接。您可以在 servlet 中使用此类。

【讨论】:

【参考方案3】:

使用 JDBC 并拥有应用服务器的应用程序池是一个好的开始。您还可以使用一些 API 来让您的生活更轻松,例如 Hibernate。

【讨论】:

【参考方案4】:

这是一种“不好的方式”,因为它不使用(JNDI 管理的)连接池来获取连接。尽管获取连接“仅”花费几百毫秒,但这在繁忙的多用户环境中会产生影响。连接池将担心打开和关闭连接,并在每次getConnection() 调用时立即释放它们,因此它实际上花费几乎为零毫秒。如果您在繁忙的多用户环境中进行总结,那么差异是显而易见的。

连接池通常以 JNDI 数据源的形式进行配置,该数据源由相关的 servlet 容器管理。由于您没有提及您使用的是哪一个,因此我可以在最高点找到我的答案之一,其中包含一个Tomcat 6.0 目标示例:here

希望这会有所帮助。

【讨论】:

以上是关于如何连接 Derby 数据库和 Servlet?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 MyEclipse 中使用 struts 连接 Derby 数据库

有关与Apache Derby和Java连接的协议

无法同时从两个进程连接 derby 数据库

数据源 derby - 连接被拒绝

Derby 数据库连接问题

Derby/JDBC 连接生命周期(或空闲超时)