gpt4 book ai didi

java - 公共(public)数据库/dao 方法应该是静态的吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:36 25 4
gpt4 key购买 nike

我有一个方法在我的代码中从不同位置使用了 3-4 次。通常人们会为此引入一个静态实用方法,我也这样做了。

但我想知道这是否是一个好的做法,如果这个静态方法执行一些数据库/dao 逻辑?以下面为伪代码示例:

class DaoUtiliy {

public static void updateToDB(List a, List b) {
Dao dao = new Dao();
dao.open(); //begin transaction

//create some variables using the list a, that are used to fetch the db entry:
String time, String date; //some more
Entity entity = dao.find(time, date);

//update anything in that entity;
entity.setProperty(b.get(0));

dao.close(); //commit transaction
}
}

你会把它也放在静态方法中吗?或者创建一个 new DaoService().updateToDB(a, b); 然后从需要的地方调用这个方法?

最佳答案

出于以下原因,我更喜欢 DAO 中的非静态方法

  1. 使它们成为非静态的可以更容易地使用像 Spring 这样的框架注入(inject)值
  2. 编写单元测试用例对于静态方法来说并不容易,因为它们不能被覆盖
  3. 此外,如果您想扩展 DAO 的功能,则无法覆盖静态方法。

关于java - 公共(public)数据库/dao 方法应该是静态的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21262961/

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