星云erp开发手册V4.0
【免费】如何自定义底层框架
数据库字典
【免费】平台库
【付费】租户库
Jugg底层框架
基本概念
【免费】数据实体
【免费】枚举
【免费】Bo
【免费】数据库主键
【免费】MVC
【免费】异常
【免费】工具类
【免费】响应码
【免费】响应值
web-starter
【免费】自动配置
【免费】Bo字段转换
【免费】多数据源切换
【付费】Excel导入与解析
【付费】锁
【付费】开放接口
【付费】数据权限
【付费】操作权限
【付费】SQL的自定义排序
【付费】操作日志
【付费】单据时间轴
【免费】缓存
【付费】Excel导出
【付费】编号规则
【免费】定时器
【免费】Redis
【免费】登录态维护
【免费】多租户
【付费】多线程
【免费】追踪ID
【付费】文件上传
【免费】字段校验
【免费】MybatisPlus扩展
【付费】异常处理
【免费】代码生成
【免费】内置功能
【付费】WebSocket推送消息
cloud-starter
【付费】FeignClient
【付费】登录态传递
【付费】响应值
mq-starter
【付费】更换MQ
mq-core
【付费】消息生产者
【付费】队列定义
【付费】导出任务
【付费】消息通知
【付费】租户信息传递
rabbitmq-starter
【付费】导出任务
【付费】消息通知
【付费】消息生产者
【付费】队列定义
bpm-starter
【付费】发起流程
【付费】业务监听器
【付费】审核流程
【付费】发起人撤回
【付费】重新发起
【付费】流程实例管理
【付费】流程图
星云ERP-后端
【免费】接口文档
【付费】分摊工具类
【付费】库存操作
【付费】打印模板
星云ERP-前端
【免费】Vue3学习成本高不高
【免费】权限控制
【免费】工具类
【免费】自定义组件
【免费】路由
【免费】数据列表
【免费】日期范围选择器
【付费】事件
【付费】枚举
【免费】CSS
【免费】图标
【免费】mix
本文档使用「觅思文档专业版」发布
-
+
首页
【免费】数据实体
### 数据实体 ==数据实体类的划分,每个人的理解是不一样的,所以我们不讨论每层划分的是否合理或者相应层的实体名是否合适等问题。== 目前关于数据实体有以下几个概念: 1. entity:实体类,和数据库表映射的Java类。==为了简化数据实体的结构,实体类也认为是一种特殊的dto。== 2. dto:数据传输类,负责数据传输。 3. vo:视图类,负责接收前端的传入参数。 4. bo:业务类,负责响应前端的数据。 5. excelModel:excel模型,性质上认为是bo。 #### 如何将Java类定义成数据实体? 1. entity:Java类==extends BaseEntity==。 2. dto:Java类==implement BaseDto==。 3. vo:Java类==implement BaseVo==。 4. bo:Java类==extends BaseBo==。 5. excelModel:Java类==implement ExcelModel==并且==extends BaseBo==。 其中:entity、dto、vo需要额外implement java.io.Serializable接口,并指定serialVersionUID。==这个是约定,并不强制,只是推荐这样做。== >i **题外话** >最开始我的想法是vo只留存在controller层,如果想进入service层,那么需要做转换。当时还定义了param层,后来为了简化数据实体的结构,就放弃了param层。但其实有param层话,可以更方便解决一些问题,例如:适配不同的客户端等。 #### 数据实体间的转换 在当前结构下,只存在一种转换,那就是dto到bo的转换。转换是写在了BaseBo的构造方法中。 ```java public BaseBo() { } public BaseBo(T dto) { this.init(dto); } protected void init(T dto) { if (dto != null) { this.convert(dto); this.afterInit(dto); } } ``` 使用BaseBo(T dto)构造方法时,会将dto转换成bo。
星云-开发
2025年8月7日 14:59
257
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期