gpt4 book ai didi

java - 如何在不使用 Spring/JPA/Hibernate 的情况下传递 JDBC 连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:19 24 4
gpt4 key购买 nike

我们有一个 Java J2EE 应用程序,它为每个数据库行插入/更新使用单独的 Web 服务调用。事实证明这太慢了。他们让我来“快速”修复它。我计划将所有 Web 服务调用转换为纯 JDBC。为此,我需要从池中获取 JDBC 连接,然后以多种不同的方法使用它。我需要在多个 DAO 中使用相同的 JDBC 连接,将它们串在一起形成一个数据库事务。我可以明确地将 JDBC 连接传递给需要它的每个 DAO,但这需要我更改很多方法签名,再加上很多单元测试(这与“快速”部分背道而驰)。

我正在尝试想出一个好方法,将 JDBC 连接放在某个地方,然后只需在需要它的方法中获取它,而不必在任何地方显式地传递它。我们不能在这个项目上使用 Spring、JPA 或 Hibernate,因为支持团队不支持这些技术。我可以将 JDBC 连接放入 EJB,但我不确定这有多可靠。我可以创建一个自定义单例来管理每个用户( session ?)的数据库连接,但我必须注意线程安全。如果有人以前尝试过这样做,我将不胜感激一些建议。

最佳答案

您可以使用 ThreadLocal。设置入口点,然后设置 DAO

class ConnectionUtil {
public static final ThreadLocal<Connection> connection = new ThreadLocal<Connection>();
}

public Return method(Args arg) {
ConnectionUtil.connection.set(newConnection());
try {
...
} finally {
ConnectionUtil.connection.remove();
}
}

很丑,但这似乎是你老板想要的。

关于java - 如何在不使用 Spring/JPA/Hibernate 的情况下传递 JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400710/

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