当前位置: 首页 > backend >正文

crud方法命名示例

以下是基于表名dste_project_indicator(项目指标表)的完整命名示例,覆盖各类增删改查场景:

1. 表名与实体类映射

// 表名:dste_project_indicator
// 实体类:DsteProjectIndicatorEntity
public class DsteProjectIndicatorEntity {private Long id;private Long projectId;private String indicatorCode;private String indicatorName;// 其他字段...
}

2. 基础增删改查方法

// 新增
int insert(DsteProjectIndicatorEntity entity);
int save(DsteProjectIndicatorEntity entity);// 修改
int update(DsteProjectIndicatorEntity entity);
int modify(DsteProjectIndicatorEntity entity);// 逻辑删除
int logicDeleteById(Long id);
int markAsDeletedById(Long id);// 物理删除
int deleteById(Long id);
int removeById(Long id);// 查询单条
DsteProjectIndicatorEntity selectById(Long id);
DsteProjectIndicatorEntity getById(Long id);// 查询多条
List<DsteProjectIndicatorEntity> selectList(QueryParam param);
List<DsteProjectIndicatorEntity> listByCondition(QueryParam param);

3. 批量操作方法

// 批量新增
int batchInsert(List<DsteProjectIndicatorEntity> entityList);
int insertBatch(List<DsteProjectIndicatorEntity> entityList);// 批量修改
int batchUpdate(List<DsteProjectIndicatorEntity> entityList);
int updateBatch(List<DsteProjectIndicatorEntity> entityList);// 批量逻辑删除
int batchLogicDeleteByIds(List<Long> ids);
int batchMarkAsDeleted(List<Long> ids);// 批量物理删除
int batchDeleteByIds(List<Long> ids);
int batchRemoveByIds(List<Long> ids);

4. 条件操作方法

// 条件新增(根据另一个实体创建)
int insertByEntity(DsteProjectIndicatorEntity template);
int saveFromTemplate(DsteProjectIndicatorEntity template);// 条件修改(根据条件更新部分字段)
int updateByCondition(UpdateParam updateParam, QueryParam queryParam);
int modifyFieldsByCondition(Map<String, Object> fields, QueryParam condition);// 条件逻辑删除
int logicDeleteByCondition(QueryParam param);
int disableByCondition(QueryParam param);// 条件物理删除
int deleteByCondition(QueryParam param);
int removeByCondition(QueryParam param);

5. 分页与统计方法

// 分页查询
Page<DsteProjectIndicatorEntity> selectPage(PageParam pageParam, QueryParam queryParam);
IPage<DsteProjectIndicatorEntity> pageByCondition(PageParam page, QueryParam condition);// 统计查询
Long countByCondition(QueryParam param);
Integer countActiveIndicators();

6. 复杂业务方法

// 按项目ID查询指标列表
List<DsteProjectIndicatorEntity> selectByProjectId(Long projectId);
List<DsteProjectIndicatorEntity> listIndicatorsByProject(Long projectId);// 按指标编码查询(唯一键)
DsteProjectIndicatorEntity selectByCode(String indicatorCode);
DsteProjectIndicatorEntity getByUniqueCode(String code);// 逻辑删除并关联删除子指标
int logicDeleteWithChildren(Long id);
int disableIndicatorCascade(Long id);// 批量新增并返回主键
List<Long> batchInsertAndReturnIds(List<DsteProjectIndicatorEntity> entityList);

命名原则总结

  1. 动词选择

    • 新增insert/save/create
    • 修改update/modify/edit
    • 删除delete/remove(物理)、logicDelete/disable/markAsDeleted(逻辑)
    • 查询select/get/list/page
  2. 参数与返回值

    • 单数形式(如 insert)处理单个实体
    • 复数形式(如 batchInsert)处理集合
    • ByXXX 后缀表示按条件操作
  3. 业务场景

    • 包含业务对象名称(如 ProjectIndicator
    • 特殊场景使用特定动词(如 archive/invalidate/restore
  4. 代码风格一致性

    • 保持项目内方法命名统一(如统一用 insertsave
    • 使用 Entity/Param/VO 明确参数类型

示例实现(MyBatis Mapper)

public interface DsteProjectIndicatorMapper {// 单条新增@Insert("INSERT INTO dste_project_indicator (...) VALUES (...)")int insert(DsteProjectIndicatorEntity entity);// 批量新增@Insert("<script>INSERT INTO dste_project_indicator (...) VALUES " +"<foreach collection='list' item='item' separator=','>(...)</foreach></script>")int batchInsert(@Param("list") List<DsteProjectIndicatorEntity> entityList);// 条件逻辑删除@Update("UPDATE dste_project_indicator SET delete_at = NOW() WHERE project_id = #{projectId}")int logicDeleteByProjectId(@Param("projectId") Long projectId);// 分页查询List<DsteProjectIndicatorEntity> selectPage(@Param("page") PageParam pageParam, @Param("condition") QueryParam condition);
}

根据实际业务需求(如数据库类型、ORM框架、事务要求等),选择最合适的命名方式和实现策略。

http://www.xdnf.cn/news/8097.html

相关文章:

  • wireshark: Display Filter Reference
  • `Release`模式下 编译器优化对 gRPC 远程调用的影响 导致堆栈非法访问
  • 防震基座在半导体晶圆制造设备抛光机详细应用案例-江苏泊苏系统集成有限公司
  • 《黄帝内经》数学建模与形式化表征方式的重构
  • 电脑中了勒索病毒如何自救
  • CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式
  • Autodl训练Faster-RCNN网络(自己的数据集)
  • 自由开发者计划 002:创建一个贷款计算器的微信小程序
  • 鸿蒙Flutter实战:22-混合开发详解-2-Har包模式引入
  • VUE 文件下载,流形式的文件下载,判断返回的是流还是JSON;获取下载名称
  • 【Linux笔记】——网络基础
  • 【Java面试】从Spring Boot到Kafka:技术栈与业务场景全面剖析
  • 5G 网络切片深度解析
  • Python----循环神经网络(Word2Vec的优化)
  • 《JVM G1 源码分析和调优》笔记
  • C++23 容器推导指引中对于分配器的非推导语境(P1518R2)
  • 用 Deepseek 写的 html+js 密码生成器
  • 【软件使用】RSS(Really Simple Syndication)
  • WebSocket 从入门到进阶实战
  • LeetCode 76题「最小覆盖子串」
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • Axure安装与基础
  • 计算机网络 第三章:运输层(二)
  • day1 大模型学习 Qwen系列学习
  • Java求职面经分享:Spring Boot到微服务,从理论到实践
  • RISC-V 开发板 MUSE Pi Pro Gstreamer 编码UVC及MIPI CSI摄像头视频流
  • flutter 项目调试、flutter run --debug调试模式 devtools界面说明
  • 每日Prompt:像素风格插画
  • HarmonyOS NEXT~鸿蒙系统下的Cordova框架应用开发指南
  • React中常用的钩子函数: