数据库DAO方法命名最佳实践

一般我们在写数据库查询的时候会有很多的查询数据的方法
比如:

  • 查询数据操作(查询分类列表、城市信息、新闻列表)
  • 修改操作(修改昵称、修改订单的状态)
  • 删除操作(删除)
  • 添加操作(下一个订单、添加一个商品)
  • 统计操作(统计有多少个订单)

其实一看就是我们通常的使用最多的crud操作,但是随着业务的迭代,我们的数据库的操作会越来越多,就会产生一个问题:看一个DAO方法的直接反应是不知道这个方法具体什么数据库操作。这样新人加入后,对于项目的理解难度就会加大。本质上就是通过比较好的命名规范来解决这个问题。

好了废话不多说,那通过怎么样的命令规则才能解决这个问题呢?根据笔者的工作经验大致罗列出了一些通用的命名方案,希望可以对大家做一个参考。

  • 查询的数据一般我们会分为两种情况,一种是查询出所有的数据,比如是元数据(新闻分类信息、城市信息)对于这类的命名我一般会用listXXX()这样的命名方式,这样一眼就可以看出这个DAO方法是查询这个表的所有数据;另一种是查询分页数据,比如新闻列表这里的信息我一般会用findXXX(Criteria c),findById(Long id)这样的命名方式。
  • 修改数据我们一般以updateBy(Record record ,Criteria c),updateById(Long id)开头命名
  • 删除以deleteById(Long id),deleteBy(Criteria c)开头命名
  • 添加一般以insert(Record record)开头命名
  • 统计一般用countBy(Criteria c)开头命名

通过上面的命名规则,再结合业务的调用的参数,基本上很清楚了解到每个方法具体是操作数据的,用过Criteria也可以把条件的逻辑封装到sql语句的处理上,形成一个通用的解决方法。解释一下Record是要操作的数据对象,Criteria是条件对象

下面附一套我常用的mybatis的Mapper的命名方案

public interface UserRepository {
    long countBy(UserCombo combo);
    int deleteBy(UserCombo combo);
    int deleteById(Long id);
    int insert(User record);
    int insertSelective(User record);
    List<User> listAll();
    List<User> findBy(UserCombo combo);
    User findById(Long id);
    int updateSelectiveBy(@Param("record") User record, @Param("combo") UserCombo combo);
    int updateBy(@Param("record") User record, @Param("combo") UserCombo combo);
    int updateSelectiveBy(User record);
    int updateBy(User record);
}

好啦,总的来说是一套基于约定的套路来减少团队的沟通的成本。按照这样的DAO方法代码命名规范,这样再也不怕代码写多了,不知道哪些方法的功能是干什么的了。见名知意方便开发,提升沟通效率。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值