首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助找出一个轻量级的Java框架

需要帮助找出一个轻量级的Java框架
EN

Stack Overflow用户
提问于 2012-03-14 17:47:24
回答 3查看 224关注 0票数 1

我们有一个老的大型Java EE项目,在某些地方,由于糟糕的编码,数据库连接没有正确关闭/或者没有在catch/finally块中清除。

我们已将数据库连接池限制为100个连接。有时会发生这样的情况:连接保持打开,所有100个连接都被使用,因此应用程序被挂起。我正在尝试重构这个项目,很明显,当我到达那里时,我会处理这个糟糕的代码,我想知道有没有轻量级的Java框架可以自动关闭这个打开的数据库连接,而不需要编写conn.close()或session.close()。

也许像Django这样的东西,在每个请求/存储周期结束时,每个数据库连接都会关闭。

我知道我可以使用p6spy和IronTrack SQL这样的工具来查找无法关闭的语句,但我对框架更感兴趣,因为这个项目不使用任何语句,我正在尝试将此项目与框架集成。

EN

回答 3

Stack Overflow用户

发布于 2012-03-15 03:05:40

Java 7中的try-with-resource可能会有所帮助。瞧一瞧

http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html

在这里Java 7 Automatic Resource Management JDBC (try-with-resources statement)你可以提出类似的问题。

检查是否检测到连接泄漏。我相信,你会找到一些工具来实现这一点。

票数 1
EN

Stack Overflow用户

发布于 2012-03-15 14:16:11

我认为你应该通过几个不同的框架,演示应该是可用的,如果你搜索他们,并选择一个最适合你当前和近期的需求。我个人喜欢Primefaces/Hibernate (如果你使用的是JSF)。

票数 0
EN

Stack Overflow用户

发布于 2012-03-18 20:23:05

Java中的轻量级方法是使用简单的基于POJO的bean,称为EJB,用于完成数据库工作。

对于它们,在许多或所有情况下,数据库连接是完全由服务器在幕后为您处理的事情。

例如(假设您现在的查询是原生SQL):

代码语言:javascript
复制
@Stateless
public class MyBean {

    @PersistenceContext
    private EntityManager entityManager;

    public void doDBWork() {
        entityManager.createNativeQuery("update foo set a = 1").executeUpdate();
    }
}

在本例中,当您调用doDBWork时,事务将自动启动,并在您离开该方法时结束。在这两者之间的某个地方,从连接池中检索连接并返回给它。在遇到异常或并发访问时,代码会自动完全安全。

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

https://stackoverflow.com/questions/9699434

复制
相关文章

相似问题

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