Service层,Dao层开AR方式

文章讲述了如何在Java开发中使用MyBatis-Plus(MP)组件开启ActiveRecord(AR)模式。实体类继承Model<T>,Dao层继承BaseMapper<T>,而ServiceImpl通过继承ServiceImpl<T1,T2>实现AR功能,其中T1表示Dao层接口,T2表示实体类。如果表名与实体类名不同,可以通过注解指定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.实体类方式:

实体类开启AR (同时开启Dao层AR)

继承MP特殊类Model<T>

Model隶属于:com.baomidou.mybatisplus.extension.activerecord.Model

T泛型:当前的实体类

2. Dao层开启AR

继承特殊类BaseMapper<T>

BaseMapper隶属于:com.baomidou.mybatisplus.core.mapper.BaseMapper

T泛型:当前的实体类

 ServiceImpl开启AR,

ClientServiceImpl正常实现ClientService接口

继承特殊类ServiceImpl<T1,T2>

ServiceImpl隶属于com.baomidou.mybatisplus.extension.service.impl.ServiceImpl

T1: 继承了MP组件的Dao层

T2:实体类,也是为了引向到一个表

由于T1的存在,因此无需再自动装载dao层

ServiceImpl的AR功能,是依赖Dao的AR功能来实现

默认会寻找当前数据源下,和实体类名相同的表

实体类名和表名不相同,在实体类上添加一个注释

 

### 高校科研管理系统三架构流程图设计 #### 三架构概述 高校科研管理系统的三架构通常由表示、业务逻辑和数据访问组成。这种分方式有助于提高系统的可维护性和扩展性,同时也便于分工协作。 #### 表示 (Presentation Layer) 负责处理用户的输入输出操作以及界面展示功能。该接收来自客户端的请求并将其传递给业务逻辑,在接收到响应后更新用户界面向用户提供反馈[^1]。 ```mermaid graph TD; A[用户端] --> B{表示}; B --> C(转发至业务逻辑); D(显示页面/消息) <--|返回结果| B; ``` #### 业务逻辑 (Business Logic Layer, BLL) 作为核心部分承担着具体的应用程序逻辑运算工作,比如计算、判断等复杂算法实现都在此完成。此外还涉及到与其他外部服务通信的任务调度等功能也放置于此处执行。 ```mermaid graph TD; E{业务逻辑} --> F(验证参数合法性); G(调用DAO获取数据) -.-> H(封装成DTO对象); I(处理业务规则) --> J(返回DTO到表示); ``` #### 数据访问 (Data Access Object Layer, DAO) 主要用于定义与数据库交互的方法来存取实体类的数据记录。它屏蔽了底SQL语句的具体编写过程使得上可以更加专注于应用程序本身的开发而不必关心持久化机制内部是如何工作的。 ```mermaid graph TD; K{数据访问} --> L(查询数据库); M(插入新纪录) --> N(提交事务); O(回滚异常情况下的更改) --|捕获错误| P(抛出自定义异常); ``` 以上三个子图表分别展示了不同次之间的工作原理及其相互作用关系。对于整个系统而言,则可以通过下述综合性的MermaidJS图形更直观地理解各组件间的联系: ```mermaid graph TB; subgraph 用户端 direction LR A[浏览器] end subgraph 表示 " " B((控制器))-.->C[视图模板引擎]; D[前端脚本库]-- 提供辅助函数 -->C; E[静态资源文件夹]-- 加载样式表和图片 -->C; F[路由映射配置]-- 解析URL路径 -->B; G[过滤器链]-- 处理跨域资源共享(CORS), 日志记录等 -->B; H[拦截器集合]-- 实现全局前后置处理器 -->B; I[安全认证模块]-->J[权限控制插件]; K[国际化支持包]-->L[多语言切换工具]; M[JSON序列化反序列化工厂]-->N[HTTP消息转换器]; O[统一异常处理者]-->P[自定义错误页渲染单元]; Q[异步任务队列]-->R[定时作业调度中心]; S[缓存代理工厂]-->T[分布式会话共享方案]; U[WebSocket连接池]-->V[WSS服务器适配]; W[XSRF防护网关]-->X[YAML解析环境变量加载器]; Y[ZIP压缩解压实用方法集] Z[其他第三方依赖注入容器] end subgraph 业务逻辑 "" a((Service)) b[领域模型仓库] c[事件发布订阅总线] d[命令模式执行器] e[聚合根仓储接口] f[规格模式构建器] g[工厂方法实例化工厂] h[策略模式选择器] i[责任链模式处理器] j[观察者模式监听器注册表] k[中介者模式协调者] l[解释器模式表达式求值器] m[状态机有限自动机模拟器] n[迭代器遍历游标] o[组合模式树形结构节点] p[装饰者动态增强构件] q[单例懒汉饿汉混合体] r[原型深浅克隆复制站] s[建造者逐步组装产品流水线] t[门面简化复杂子系统外观] u[享元节省内存空间飞重量级对象池] v[桥接分离抽象与实现桥梁] w[适配器兼容不同类型组件转接头] x[代理延迟初始化或远程引用本地代表] y[空对象消除null指针检查烦恼虚无缥缈之物] z[其他常用设计模式实践案例汇总] end subgraph 数据访问 "" aa[(Repository)] ab[MongoDB驱动程序] ac[Cassandra集群客户端] ad[HBase表格扫描器] ae[Elasticsearch全文搜索引擎集成SDK] af[RabbitMQ消息中间件生产消费API] ag[Kafka流处理平台消费者组管理器] ah[Redis键值存储操作指令集] ai[Memcached分布式的高速缓存协议栈] aj[JDBC标准接口规范] ak[MyBatis ORM框架] al[Flyway版本迁移工具箱] am[Hibernate Session Factory] an[GORM Go语言版活跃记录风格DSL] ao[TypeORM TypeScript友好型实体映射库] ap[Dapper轻量级微型ORM解决方案] aq[Vitess MySQL分片集群接入点] ar[Presto联邦查询引擎对接入口] as[ClickHouse高性能OLAP数据库官方Go Client] at[其他NoSQL/NewSQL/Native SQL Driver Wrappers] end A --> |发起GET/POST请求| B; B --> a; a --> aa; aa --> aj; aj --> al; al --> am; am --> ao; ao --> ap; ap --> at; ``` 上述图表仅提供了一个高次的概念性描述,并未深入具体的编码细节和技术选型考量因素。实际项目中还需要根据特定需求进一步细化和完善各个面的设计思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值