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

[MyBatis系列②]Dao层开发的两种方式

目录

1、传统开发

1.1、代码

1.2、存在的问题

2、代理开发

2.1、开发规范

2.2、代码


⭐mybatis系列①:增删改查

1、传统开发

传统的mybatis开发中,是在数据访问层实现相应的接口,在实现类中用"命名空间.id"的形式找到对应的映射文件当中配置的sql语句,而代理开发则是通过接口类型寻找对应的执行方法。

1.1、代码

映射文件配置:

Dao层代码如下:

1.2、存在的问题

之前的代码是基本使用方式,它也存在硬编码的问题,如下:

这里调用 selectList() 方法传递的参数是映射配置文件中的namespace.id值

这样写也不便于后期的维护。如果使用Mapper 代理方式则不存在硬编码问题:

通过上面的描述可以看出 Mapper 代理方式的目的:

解决原生方式中的硬编码

简化后期执行SQL

Mybatis 官网也是推荐使用 Mapper 代理的方式。下图是截止官网的图片:

2、代理开发

采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是企业的主流。

Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

2.1、开发规范

Mapper 接口开发需要遵循以下规范:

1、Mapper.xml文件中的namespace与mapper接口的全限定名相同

2、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同

4、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

图解:

2.2、代码

下面是具体模拟的MVC步骤:

对应的目录如下:

①控制层:用测试框架做一个简单的模拟:

②业务层:

③数据访问层:

④编写映射文件:

⑤在配置文件中加载映射文件:

⑥测试:

结果符合预期!

        

http://www.lryc.cn/news/137711.html

相关文章:

  • 言语理解-中心理解之主题词及行文脉络
  • LeetCode 面试题 01.05. 一次编辑
  • Mybatis查询in的字段过多不走索引
  • 封装公共el-form表单(记录)
  • List 分批处理
  • SpringSession
  • Python Web 开发之 JWT 简介
  • 科技资讯|荷兰电动自行车丢失将被拒保,苹果Find My可以减少丢失
  • debian rules语法
  • 网易2023年Q2财报:营收240亿元,游戏技术跨产业创造数字就业
  • Python的Flask框架创建、运行与访问
  • Java课题笔记~ 综合案例
  • Seaborn数据可视化(二)
  • HDLBits-Verilog学习记录 | Verilog Language-Basics(1)
  • elementui表格嵌套上传文件直传到oss服务器(表单上传)
  • 使用navicat来访问doris
  • 2023国赛数学建模思路 - 案例:异常检测
  • redis实战-缓存三剑客穿透击穿雪崩解决方案
  • Tomcat10安装及配置教程win11
  • 遗传算法解决TSP问题
  • 设计模式-工厂设计模式
  • TM4C123库函数学习(3)---串口中断
  • opencv 进阶13-Fisherfaces 人脸识别-函数cv2.face.FisherFaceRecognizer_create()
  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)
  • LeetCodeHot100python版本:单调栈,栈,队列,堆
  • JUC初识
  • stm32之5.长按按键(使用时钟源)调整跑马灯速度
  • element ui datePick时间日期一段时间,限制选择日期的范围
  • kubernetes--技术文档-真--集群搭建-三台服务器一主二从(非高可用)-三服务器位于同交换机中
  • 高性能MySQL实战(三):性能优化