1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?
StudenDaoListImpl.java是利用ArrayList类进行存储student数据,而StudentDaoArrayImpl.java直接利用数组进行存储。
2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
StudentDao.java文件用于存放StudentDao接口,声明该接口中的方法。因为使用该接口的类中方法形态相同,但是具体方法是不同的。
3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
·“DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。”
理解:DAO模式通过定义接口让不同的类实现这个接口。从外部来看,其实对数据的操作都是通过接口进行,但其实在类中,是有着不同的方法。从而实现数据库操作的封装。
·“从以上 DAO 模式使用可以看出,DAO 模式的优势就在于它实现了两次隔离。”
·“1、隔离了数据访问代码和业务逻辑代码。”
·“2、隔离了不同数据库实现”
理解:使用DAO接口是比较方便的,在进行业务逻辑代码时,直接调用接口就可以了;而且当底层数据库发生改变时,就只要根据接口增加新类就可以了,无需对原有代码进行改变。
4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
未修改时:
修改之后:
只是修改了一行代码就可以使两个不同的方法得到相同的结果。这就是DAO模式隔离了不同数据库实现的好处:在StudentDaoArrayImpl和StudenDaoListImpl两个类中使用ArrayList和数组进行存储数据,但都实现了studentDo接口,就无需去修改代码。