Java接口DAO模式代码原理及应用详解

 更新时间:2020年11月03日 11:11:50   作者:R°  
这篇文章主要介绍了Java接口DAO模式代码原理及应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

DAO模式是接口的一个典型应用。

1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?

二者都用于记录学生信息并且都声明了StudentDao接口,但StudenDaoListImpl.java使用ArrayList动态数组实现,使其内存可改变;而StudentDaoArrayImpl.java使用数组来储存学生信息,其数组长度是不变的。

2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?

StudentDao接口定义了三种抽象方法写入,读取,输出。即:

  • addStudent写入学生信息;
  • getStuByName读取学生信息;
  • diplayAllStudents输出显示学生信息。

因为该文件只确定了方法的声明,没有对方法进行实现。

3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。

  • DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
  • DAO 模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离对上层提供面向对象的数据访问接口。
  • DAO 模式的优势就在于它实现了两次隔离。
    • 隔离了数据访问代码和业务逻辑代码。
    • 隔离了不同数据库实现。

理解:

使用DAO可以分离开来便于管理,有层次感,方便代码的编写,有一些比较清楚的逻辑,防止我们在写代码的过程中出现思路混乱等问题,具有灵活性。

4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?

使用数组实现StudentDaoArrayImpl

使用列表实现StudenDaoListImpl

StudentDaoArraylmpl与StudentDaoListImpl都是使用DAO接口来实现操作的,这样可以实现不相关类的相同行为,也可以更加灵活地调用定义函数,使得程序结构清晰,并且此时相同的方法有不同的实现,在选择适合的存储方式和方法时,对代码的改动也较小,灵活性较高,增强了程序的稳定性,好处多多。

5. 可选:编写一些使用DAO模式的代码。比如使用文件作为购物车存储底层。参考资料Java DAO模式 https://www.runoob.com/note/27029

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot或SpringAI对接DeepSeek大模型的详细步骤

    SpringBoot或SpringAI对接DeepSeek大模型的详细步骤

    这篇文章主要介绍了DeepSeek智能助手的使用方法和步骤,包括引入库、配置环境变量和配置,文章详细描述了流式请求和非流式请求的实现方式,需要的朋友可以参考下
    2025-02-02
  • Mybatis核心配置文件加载流程详解

    Mybatis核心配置文件加载流程详解

    本文将介绍MyBatis在配置文件加载的过程中,如何加载核心配置文件、如何解析映射文件中的SQL语句以及每条SQL语句如何与映射接口的方法进行关联,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Java反射 PropertyDescriptor类案例详解

    Java反射 PropertyDescriptor类案例详解

    这篇文章主要介绍了Java反射 PropertyDescriptor类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring Boot 中的 @ConditionalOnBean 注解场景分析

    Spring Boot 中的 @ConditionalOnBean 注解场景分析

    本文详细介绍了Spring Boot中的@ConditionalOnBean注解的使用场景、原理和基本用法,通过多个示例,展示了如何使用该注解根据Bean是否存在来动态地注册或跳过特定的Bean,感兴趣的朋友一起看看吧
    2025-03-03
  • SpringBoot接口返回结果封装方法实例详解

    SpringBoot接口返回结果封装方法实例详解

    在实际项目中,一般会把结果放在一个封装类中,封装类中包含http状态值,状态消息,以及实际的数据。这里主要记录两种方式,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • Java中的synchronized锁膨胀详解

    Java中的synchronized锁膨胀详解

    这篇文章主要介绍了Java中的synchronized锁膨胀详解,正常创建的对象,状态为无锁,对象头的Mark Word 中主要记录了 对象的年龄,也就是经历了多少次GC还存活下来,需要的朋友可以参考下
    2024-01-01
  • Spring AOP如何自定义注解实现审计或日志记录(完整代码)

    Spring AOP如何自定义注解实现审计或日志记录(完整代码)

    这篇文章主要介绍了Spring AOP如何自定义注解实现审计或日志记录(完整代码),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 详解context root修改无效web修改项目路径(eclipse)

    详解context root修改无效web修改项目路径(eclipse)

    这篇文章主要介绍了详解context root修改无效web修改项目路径(eclipse)的相关资料,需要的朋友可以参考下
    2017-04-04
  • 异步线程traceId如何实现传递

    异步线程traceId如何实现传递

    文章介绍了如何在异步请求中传递traceId,通过重写ThreadPoolTaskExecutor的方法和实现TaskDecorator接口来增强线程池,确保异步线程间的traceId同步
    2025-02-02
  • MyBatis传入List集合查询数据问题

    MyBatis传入List集合查询数据问题

    这篇文章主要介绍了MyBatis传入List集合查询数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论