zoukankan      html  css  js  c++  java
  • Java-5-OO之接口-DAO模式代码阅读及应用

    一、 StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?

    前者使用链表进行数据的储存,增添删除比较方便,后者使用数组,遍历时要判断数组是否为空。

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

    是一个接口,存放了3个声明。因为接口中的方法会在其它类中实现。

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

    DAO 模式

    DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。

    什么是DAO

    1.Data Access Object(数据存取对象)

    2.位于业务逻辑和持久化数据之间

    3.实现对持久化数据的访问

    DAO模式的作用

    1隔离业务逻辑代码和数据访问代码

    2.隔离不同数据库的实现

    业务逻辑层,数据访问层(Oracle,SQLServer,MySQL)

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

    数组实现

    package stumanagement;
    
    public class Test {
    
    	public static void main(String[] args) {
    		Student[] students = new Student[3];
    		students[0] = new Student("Tom");
    		students[1]= new Student("Jerry");
    		students[2] = new Student("Sophia");
    
    		
    		StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
    		//StudentDao sdm = new StudenDaoListImpl();//使用链表实现
    		
    		//往后台写数据,无需考虑后台是什么(到底是数据库、文件、数组、List)
    		//因为这里是面向StudentDao接口
    		System.out.println("===========写入学生========");
    		for(Student e:students){
    			if (!sdm.addStudent(e)){
    				System.out.println("添加学生失败");
    			}else{
    				System.out.println("插入成功!!");
    			}
    		}
    		System.out.println("===========显示所有学生========");
    		sdm.diplayAllStudents();
    		System.out.println("===========查询学生========");
    		Student temp = sdm.getStuByName("Tom") ;
    		if(temp == null){
    			System.out.println("查无此人");
    		}else{
    			System.out.println(temp);
    		}
    
    
    	}
    
    }
    
    

    链表实现

    package stumanagement;
    
    public class Test {
    
    	public static void main(String[] args) {
    		Student[] students = new Student[3];
    		students[0] = new Student("Tom");
    		students[1]= new Student("Jerry");
    		students[2] = new Student("Sophia");
    
    		
    		//StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
    		StudentDao sdm = new StudenDaoListImpl();//使用链表实现
    		
    		//往后台写数据,无需考虑后台是什么(到底是数据库、文件、数组、List)
    		//因为这里是面向StudentDao接口
    		System.out.println("===========写入学生========");
    		for(Student e:students){
    			if (!sdm.addStudent(e)){
    				System.out.println("添加学生失败");
    			}else{
    				System.out.println("插入成功!!");
    			}
    		}
    		System.out.println("===========显示所有学生========");
    		sdm.diplayAllStudents();
    		System.out.println("===========查询学生========");
    		Student temp = sdm.getStuByName("Tom") ;
    		if(temp == null){
    			System.out.println("查无此人");
    		}else{
    			System.out.println(temp);
    		}
    
    
    	}
    
    }
    
    

    好处:数据库的修改只要修改DAO层的访问方式,而不需要整个项目进行修改

  • 相关阅读:
    前端学习(1)~html标签讲解(一)
    前端学习(0)~vscode工具使用
    微服务之部署
    分解单块系统
    c#之线程基础(一)
    如何在windows 7 上使用docker
    CodeForces 995B Suit and Tie(贪心,暴力)
    CodeForces 993B Open Communication(STL 模拟)
    CodeForces 993A Two Squares(数学 几何)
    CodeForces 996B World Cup(思维)
  • 原文地址:https://www.cnblogs.com/lim-M/p/13874560.html
Copyright © 2011-2022 走看看