我正在使用Spring MVC,Hibernate构建一个小型Java Web应用程序,我对DAO类方法命名感到困惑.
例如,我有一个InvoiceDAO.java类,我认为应该包含以下方法:
Save(Invoice newInvoice);
Void(Invoice oldInvoice);
getInvoiceByID(Long invoideID);
Run Code Online (Sandbox Code Playgroud)
但我的老板说最佳实践说我应该在DAO类中有方法名称,如下所示:
add(Invoice newInvoice);
update(Invoice oldInvoice);
Run Code Online (Sandbox Code Playgroud)
这对我来说没有意义,因为我不确定如何将发票命名为更新?!!
那么有人可以指导我,并告诉我,我的方法命名是否错误?换句话说,我应该只使用add,update命名,或者我可以使用任何命名,仍然被视为最佳实践.
谢谢
取消发票是一项业务操作.我会说这种逻辑存在于你的服务层.您对发票进行更新以将其标记为无效,然后将其传递到数据层进行保存.
数据层应包含纯CRUD类型方法,即添加/保存/查找.
使用许多现代数据框架,您甚至不需要编写数据层...例如,请参阅http://blog.springsource.org/2011/02/10/getting-started-with-spring-data-jpa/
前段时间我发现了关于DAO命名的这个故事......
根据功能命名
getData* 数据解析DAO内部使用的方法不使用此命名空间进行数据访问.
get* (例如getUsersByID)SELECT查询 - 鼓励您尝试根据单行或多行返回使用Singular或Plural中的名词.
set* (例如setActive)UPDATE查询
add* (例如addUser)INSERT查询 - 鼓励您尝试根据单行或多行插入使用Singular或Plural中的名词.
delete* (例如deleteUser)DELETE查询
is* (例如isActive)IF检查返回布尔值,即if($ user_dao-> isUserActive($ id))或if($ post_dao-> isPostInStorage($ id))
count* (例如countUsers)返回带有项目计数的整数.
保留功能
insert - 将对象作为参数,并将其插入表中.
save - 将对象作为参数,并将其中的数据存储回数据后端
poke - 将ID作为参数,"戳"记录(设置"最后一次看到"或现在的任何内容),返回更新计数(通常为1)
其他要记住的事情
由于存储后端可能是也可能不是"数据库",因此建议不要创建名称暗示后端使用数据库的方法.
| 归档时间: |
|
| 查看次数: |
10052 次 |
| 最近记录: |