Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要了解轻量级JavaEE框架的帮助吗_Java_Database_Jakarta Ee_Frameworks - Fatal编程技术网

需要了解轻量级JavaEE框架的帮助吗

需要了解轻量级JavaEE框架的帮助吗,java,database,jakarta-ee,frameworks,Java,Database,Jakarta Ee,Frameworks,我们有一个旧的大型JavaEE项目,在某些地方,由于编码错误,数据库连接没有正确关闭/或者没有在catch/finally块中清理 我们已将数据库连接池限制为100个连接。有时,连接保持打开状态,所有100个连接都被使用,因此应用程序被挂起。我正在尝试重新构造这个项目,很明显,当我到达那里时,我会处理这些糟糕的代码,我想知道是否有轻量级Java EE框架可以自动关闭这个打开的db连接,而无需编写conn.close()或session.close() 可能类似于Django,在每个请求/休息周期

我们有一个旧的大型JavaEE项目,在某些地方,由于编码错误,数据库连接没有正确关闭/或者没有在catch/finally块中清理

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

可能类似于Django,在每个请求/休息周期结束时关闭每个db连接


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

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

在这里你可以问类似的问题


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

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

在这里你可以问类似的问题


检查是否检测到连接泄漏。我相信,您会找到一些相关工具。

我认为您应该浏览两个不同的框架,如果您搜索它们并选择最适合您当前和近期需求的框架,应该可以使用演示。我个人喜欢Primefaces/Hibernate(如果您使用JSF)。

我认为您应该浏览两个不同的框架,如果您搜索它们并选择最适合您当前和近期需求的框架,应该可以使用演示。我个人喜欢Primefaces/Hibernate(如果您使用的是JSF)。

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

在许多或所有情况下,DB连接都是由服务器在幕后完全为您处理的

例如(假设您目前的查询是本机SQL):


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

Java EE中的轻量级方法是使用简单的基于POJO的bean,称为EJB,来完成DB工作

在许多或所有情况下,DB连接都是由服务器在幕后完全为您处理的

例如(假设您目前的查询是本机SQL):

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

@Stateless
public class MyBean {

    @PersistenceContext
    private EntityManager entityManager;

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