1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?
StudenDaoListImpl.java中使用List接口指向ArrayList类来存储student数据,而StudentDaoArrayImpl.java中直接使用Student数组来存储student数据。
2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
(1)StudentDao.java文件中定义了一个名为StudentDao接口,里面存放着三个方法声明。其他类可以通过继承来实现StudentDao.java文件中的方法,不同的子类根据不同的数据不同的存储方式写出不一样的方法代码。
(2)因为接口只规定了功能和使用方法,具体的实现要在子类中进行,故在接口中没有任何实现代码。
3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
DAO 模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离对上层提供面向对象的数据访问接口。
理解:DAO将数据库操作都封装起来,将数据访问与业务逻辑代码分开,通过DAO接口,访问DAO方法来解决问题。更改数据访问代码而不改变业务逻辑代码,提高了代码的可复用性,降低代码的耦合性。保证业务逻辑代码的安全性和私密性。
DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
1.一个典型的DAO 模式主要由以下几部分组成。
1、DAO接口: 把对数据库的所有操作定义成抽象方法,可以提供多种实现。
2、DAO 实现类: 针对不同数据库给出DAO接口定义方法的具体实现。
3、实体类:用于存放与传输对象数据。
4、数据库连接和关闭工具类: 避免了数据库连接和关闭代码的重复使用,方便修改。
2.DAO模式的作用
1、隔离业务逻辑代码和数据访问代码。
2、隔离不同数据库的实现。
4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
数组
链表
好处
隔离了数据访问代码和业务逻辑代码。在Test.java的main方法中,只需要调用addStudent、getStuByName、diplayAllStudents即可实现对student数据的增添、获取和打印功能,而无须具体了解是如何访问到这些数据的。
隔离了不同数据库实现。参考代码中StudentDaoArrayImpl和StudenDaoListImpl两个类均实现了StudentDao接口,它们具有相同的方法,但是它们具体存储数据的形式不同,想要使用哪种数据存储方式就注释掉另外一种即可(StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现或StudentDao sdm = new StudenDaoListImpl();//使用列表实现),而无须修改数据访问代码。