gpt4 book ai didi

java - 从另一个数据库访问方法中调用数据库访问方法

转载 作者:行者123 更新时间:2023-11-29 11:06:55 26 4
gpt4 key购买 nike

我是否应该避免从其他数据库访问方法中调用数据库访问方法(即:同时打开多个连接)?

假设我有一个 Object Message 及其相应的方法,用于从数据库中检索它 selectMessge()

假设 Message 有一个名为 user 的字段,其中包含一个 User Object。我通常将 selectMessage 编码为如下所示(其中 rsResultSet Object):

...
int userId = rs.getInt("UserId");
message.setUser(User.selectUser(userId));
...

(selectUser是一种数据库访问方法,上面的操作显然是在Connection打开时发生的)

上面的可以吗?或者我应该:

  1. 检索 ID
  2. 关闭连接
  3. 检索用户对象(通过打开和关闭另一个连接)

后者需要更多代码行,因为我需要在 Message Object 中为用户的 Id 提供一个单独的字段。

谢谢。

最佳答案

这取决于您的要求。在一次打开期间建立另一个连接应该不是问题,除非您用完连接。尽管如果您使用 JPA 或 hibernate,它将有不同的处理查询的机制,因此您可能根本不会遇到这种情况。

恕我直言,这完全没问题,只要您的数据库支持足够的连接。很多情况下都做过这样的事情。

但是从代码和性能的角度来看,我发现您还会遇到一些其他问题。

  1. 据我所知,数据库处理和业务处理并不是孤立的,这可能会导致紧密耦合,进而导致维护成本增加。
  2. 据我所知,您在从结果集中读取 userId 后进行查询。因此,要么您正在处理一批,要么您正在处理单个记录。如果是批量,您可以很好地收集所有用户 ID 并稍后获取记录。这会对性能产生很大的影响,如果你只有一条记录,那么最好是使用 JOIN 查询,这也会节省你一次数据库访问,这也很重要。

关于java - 从另一个数据库访问方法中调用数据库访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239872/

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