# dao层的作用以及方法命名规范
# dao层的作用
- 1、复用数据库API,减少重复代码,同时可以达到即使后面修改了数据库字段或数据库名称,也只需要修改少量
dao
层的代码即可。 - 2、
dao
层是积木,而service
层是利用这些积木来搭建你想要的乐园。 - 3、理论上
dao
层的代码开发是可以脱离业务的,即使业务需求还不是很明确,只要数据库表名已确定,即可编写dao
层。dao
层提供的是数据库原子性操作。
# 注意事项
Dao层代码必须写在
router/dao/modules/
目录文件名必须以
xxxDao.js
这样的格式命名(即必须Dao.js结尾)最终通过
await vk.daoCenter.xxxDao.xxxx();
形式进行调用尽量只写跟数据库交互的代码,少写业务逻辑代码,业务逻辑应写在
service
层如果新建dao层代码后运行提示dao不存在,则重新运行项目即可
# dao层与baseDao的区别
baseDao
相当于万能dao
,他是最基础的零件,而dao
层是利用零件组装不同形状和规则的积木,供service
层使用。
# 命名规范(参考)
查单条记录
: 获取单条记录的方法用find
或get
作为前缀查多条记录
: 获取多个对象的方法用list
作为前缀统计记录数量
: 获取统计行数的方法用count
作为前缀新增
: 新增数据的方法用add
或save
作为前缀删除
: 删除数据的方法用delete
或remove
作为前缀修改
: 修改的方法用update
作为前缀
前缀 + 条件类型(适用于1个dao只操作1张表的情况)
如:
根据
ID
获取一条信息findById
根据
手机号
获取一条信息findByMobile
根据
不定性条件
获取一条信息findByWhereJson
根据
用户状态
获取多条信息listByStatus
根据
不定性条件
获取多条信息listByWhereJson
添加
add
删除,根据ID
deleteById
修改,根据ID
updateById
批量修改,根据自定义条件
updateByWhereJson
批量删除,根据自定义条件
deleteByWhereJson
前缀 + 表名 + 条件类型(适用于1个dao可能操作多张表的情况)
如:
根据
用户ID
获取用户信息findUserById
根据
用户手机号
获取用户信息findUserByMobile
根据
不定性条件
获取用户信息findUserByWhereJson
根据
用户状态
获取用户列表listUserByStatus
根据
不定性条件
获取用户列表listUserByWhereJson
添加用户
addUser
删除用户,根据用户ID
deleteUserById
修改用户,根据用户ID
updateUserById
批量修改用户,根据自定义条件
updateUserByWhereJson
批量删除用户,根据自定义条件
deleteUserByWhereJson