dao代码重构

存在的问题

  1. 在DAO当中执行的保存方法,更新方法,删除这些DML操作有太多重复代码
    图示
    在这里插入图片描述
  2. 重构代码原则
    2.1同一个类中
    在一个类当中有多个方法当中有太多相同的代码
    不同的地方通过参数传递进去
    把它们抽到一个方法当中
    2.2不同类中
    不同类当中有共同的代码给抽取到一个新类当中。
    大家同时共享该类中的内容

抽取DML方法

  1. 设计一个方法
  2. 要求传入两个参数
    一个sql语句
    一个参数
    第一个参数sql语句模板
    第二个参数为可变参数,设置语句参数值
  3. 返回值
    返回值为int,受影响的行数。
    图示
    DAO重构示意图
    在这里插入图片描述
    调用示意图
    在这里插入图片描述

抽取DQL

  1. 抽取之前的代码
    在这里插入图片描述

  2. 抽取之后的代码
    在这里插入图片描述

  3. 遗留问题
    查询的时候,只能查询学生
    可以使用泛型解决

  4. 处理结果集的时候
    4.1 每一个都封装成了student对象, 这写死了
    4.2 原因
    不知道封装成什么类型的对象
    就不应该处理结果集
    4.3 解决办法
    把处理结果集的行为交给每个DAO
    为了规范每个DAO的处理结果集,大家都叫同样的名字,这样在模板中就可以调用同一个名称
    定义一个处理结果集的接口
    4.4 代码实现
    1.定义一个接口
    声明一个处理结果集方法
    在这里插入图片描述
    2.在具体DAO当中实现接口
    实现处理结果集方法
    在这里插入图片描述
    3.创建一个接口实现对象传给查询方法
    在这里插入图片描述
    4.在查询方法当中调用处理结果集方法
    在这里插入图片描述
    总流程图
    在这里插入图片描述

  5. 处理结果集泛型
    1.直接定义为T
    处理所有结果集都必须得要返回List
    有的时候没有必要返回List,想要查询的仅仅是一个结果整数,此时还必须得要从List当中出来
    2.有调用者自己来决定返回什么内容
    统一规定返回类型为T类型,调用者使用时去决定是什么类型
    在这里插入图片描述
    3.实现类当中实现接口时,要指定返回什么类型
    在这里插入图片描述
    4.声明方法时,声明返回值为一个泛型类型,具体是什么类型,有参数来指定
    在这里插入图片描述
    整体示意图
    在这里插入图片描述

  6. 获取总人数
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReflectMirroring

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值