2

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

我已经检查过了:如何从我的 servlet 或 JSP 访问数据库? 但是我看到文章的评论说这是一种不好的连接方式。谁能解释或向我展示我应该编写代码以访问我的 derby 数据库的最佳方式吗?

非常感谢你。

4

4 回答 4

6

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

那么该怎么办?获取 JDBC 教程。官方是一个很好的选择。这将为您提供从 Java 连接到数据库的好主意,并掌握 JDBC API。之后你应该去阅读DAO 模式,以及我们如何在实际应用程序中使用它

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

一旦你理解了所有这些并使用所有这些东西想出一个类似玩具的应用程序。下一步是研究连接池机制。

于 2010-02-24T04:58:23.643 回答
3

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

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

于 2010-02-24T04:59:46.913 回答
2

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

于 2010-02-24T06:02:01.260 回答
2

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

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

希望这可以帮助。

于 2010-02-24T23:00:59.630 回答