gpt4 book ai didi

java - 在 EJB 中注入(inject)数据源

转载 作者:太空狗 更新时间:2023-10-29 22:52:06 27 4
gpt4 key购买 nike

当您在应用程序中注入(inject)数据源并通过调用 getConnection() 获取连接时,您是否应该关闭连接?

最佳答案

即使数据源本身是容器管理的,API 确实需要程序员关闭连接。这与其他几个容器管理的资源(如实体管理器)不同,容器负责关闭。请注意,在大多数情况下关闭此处并不会实际上关闭此处的连接,而是将连接返回到连接池。

根据经验,如果您使用工厂式资源从中获取一个或多个可以关闭的其他资源,则必须关闭它们。否则容器会执行此操作。

Connection工具 AutoCloseable ,您可以为此使用 try-with-resources block :

@Stateless
public class MyBean {

@Resource(lookup = "java:/app/datasource")
private DataSource dataSource;

public void doStuff() {
try (Connection connection = dataSource.getConnection()) {

// Work with connection here

} catch (SQLException e) {
throw new SomeRuntimeException(e);
}
}
}

关于java - 在 EJB 中注入(inject)数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13550427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com