首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何在Java web服务中设置数据库连接?

我应该如何在Java web服务中设置数据库连接?
EN

Stack Overflow用户
提问于 2012-09-13 19:27:44
回答 3查看 970关注 0票数 2

我正在为一个大学项目制作一个小型论坛形式的web服务。web服务提供了一系列方法来访问和修改数据库,然后JSP/servlet将使用该web服务将论坛呈现给用户。

我已经设置了所有的方法,但是我仍然不确定如何正确地设置我的数据库连接。现在,我在web服务类文件中有一个Connection对象,连接是在该类的构造函数中建立的。我在所有方法中一直使用那个connection对象,所以它们都依赖于正在运行的构造函数。我不确定这是不是正确的。

有没有更好的方法来做这件事?一位讲师告诉我,每次有人访问页面时,都会创建web服务的一个实例,对我来说,这听起来是一个昂贵的操作。

编辑:我看了一下连接池和到目前为止我找到的所有东西(包括这需要额外的库。我的库存仅限于Java SE/EE,没有额外的库,所以这是不可能的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-13 19:33:56

这是一个非常糟糕的想法。你不应该有一个共享的Connection对象。它不能像那样扩展,而且它也不是线程安全的。

更好的方法是使用连接池。在需要的时候获取连接,使用它,并在同一方法的作用域中关闭它。

我认为你的朋友被误导了: web服务应该独立于任何页面。它由一个容器管理。它可以是单例对象或池化对象,但您不能为每个页面都创建一个。

票数 1
EN

Stack Overflow用户

发布于 2012-09-13 19:36:33

最好发布一些代码,然而,从简短的解释中,我想到了几个问题:

如果你频繁地执行构造函数,那么你就会创建大量的connections.

  • Where。你是否关闭了connection?

  • Make确保你能防止注入。
票数 0
EN

Stack Overflow用户

发布于 2012-09-13 19:37:21

你不应该在构造函数中创建连接,因为你很可能会有很多不活动的问题,连接状态,io问题,...

我更喜欢使用Apache库中的DataSource,比如BasicDataSource

代码语言:javascript
复制
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:...");
dataSource.setUser(...);
dataSource.setPassword(...);

然后,在web服务的每个方法中,调用dataSource.getConnection()来获取连接。在内部,它使用一个连接池,正如另一个答案所建议的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12405200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档