【问题标题】:How to get a connection for the whole servlet?如何获得整个 servlet 的连接?
【发布时间】:2014-03-30 09:43:00
【问题描述】:

我已使用以下方法从我的 servlet 连接到我的数据库 (Oracle 11g):

Class.forName(oracle.jdbc.driver.OracleDriver);

Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:admin","username","password");

我想为我创建的任何其他 servlet 建立相同的连接!

假设一个名为 a.java 的 servlet 连接到数据库。在同一个包中,我们还有另一个 servlet b.java

如何获取b.java中a.java的连接引用的值?

【问题讨论】:

  • 请记住,SO 不是一般教程和某人做我的家庭作业网站。那么你的具体问题是什么?您是否收到任何错误消息或其他信息?您发布了很多代码,请阅读帮助中心的this section。如果您遵循该准则,您的问题更有可能得到回答。

标签: java oracle servlets jdbc oracle11g


【解决方案1】:

我想为我创建的任何其他 servlet 建立相同的连接!

不,你不会。你会讨厌它。您甚至不希望在整个 servlet 中使用相同的连接,更不用说在 webapp 中的所有 servlet 之间使用了。每个事务都需要一个新连接。否则你将不得不同步对它的所有访问,除非只有一个客户端,否则你的 web 应用程序将停止运行,在这种情况下,这一切都是不值得的。

使用连接池。

【讨论】:

  • 还是去做了——做了一个上下文监听器!我讨厌它!当我运行 Web 应用程序时,由于超出结果集的网关数量,应用程序突然崩溃了!我必须从一开始就改变一切!恶梦!我仍然不知道连接池是什么,但我会在完成这个项目后研究它!谢谢!
  • 一直让我感到困惑的一件事是,为什么人们在这样的地方发布问题,而他们根本不打算对他们给出的任何答案有丝毫的注意。您刚刚浪费了大量自己的时间,而您的雇主的钱花在了您已经被告知的任务上,这完全是徒劳的。也许下次你会听听别人告诉你的。
  • 很抱歉浪费了您的时间。但这就是它教给我们的方式:使用上下文侦听器在部署描述符中提供与数据库的连接。
  • 对不起,但我不知道连接池是什么,项目日期已接近。有时,不了解编码最佳实践的培训师会将他们不准确的知识传递给学生。我们的讲师教我们用 Scriplets 编写 JSP 代码!您知道这是一种适得其反的不良做法!讲师是告诉我在部署描述符中为数据库连接创建上下文侦听器的人——结果适得其反!告诉我:你认为三周的JAVA和一个人可以建立一个完整的电子购物网站吗?但我必须建立在非常微不足道的知识水平上!这就是我转向 SO 的原因!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 2021-10-02
  • 1970-01-01
  • 2023-01-09
  • 2016-07-03
  • 2018-12-13
  • 1970-01-01
相关资源
最近更新 更多