总结三层架构

三层架构

我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!
所谓三层是表述层(WEB层)、业务逻辑层(service),以及数据访问层(dao)。
WEB层:包含JSP和Servlet等与WEB相关的内容;
业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;
数据层:封装了对数据库的访问细节;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zllNA5Bi-1594609384478)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200702203629770.png)]

创建类的顺序

​ 1. 先创建 entity实体类 以表名命名 表里的列全部封装成属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-phfhqwdk-1594609384480)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200702205702432.png)]

  1. 在创建 dao 包 里面创建一个以表名命名加上dao命名的一个接口 接口里面是一个方法
package dao;

import entity.Dept;

public interface DeptDao {//数据访问层
    //根据部门编号查询部门信息
    public Dept findDeptno(int deptno)throws Exception;

}

​ 然后在dao里面再创建一个impl包 包里创建一个类 命名为DeptDaoImpl 这个类implements DeptDao 并且重写他的findDeptno方法

package dao.impl;

import dao.DeptDao;
import entity.Dept;

public class DeptDaoImpl extends BaseDao implements DeptDao {
    @Override
    public Dept findDeptno(int deptno) throws Exception {
        getConnection();
        String sql="select * from dept where deptno=?";
        Object[] objects={deptno};
        rs=query(sql,objects);
        Dept dept=null;
        if(rs.next()){
            String loc=rs.getString("loc");
            String dname=rs.getString("dname");
             dept=new Dept();
            dept.setLoc(loc);
            dept.setDname(dname);
        }
        closeConnection();
        return dept;
    }
}

  1. 接下来就是创建Service 然后在里面创建 以表名加Service 为接口名

  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWLauBJx-1594609384485)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200702211002836.png)]

    package service;
    
    import entity.Dept;
    
    public interface DeptService {
        public Dept finddeptno(int deptno)throws Exception;
    }
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tb2mRpen-1594609384487)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200702211106554.png)]

一个接口对应一个类 一层调用一层

package service.impl;

import dao.DeptDao;
import dao.impl.DeptDaoImpl;
import entity.Dept;
import service.DeptService;

public class DeptServiceImpl implements DeptService {
    private DeptDao deptDao=new DeptDaoImpl();
    @Override
    public Dept finddeptno(int deptno) throws Exception {
        return deptDao.findDeptno(deptno);
    }
}

最后就是创建web层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ak3La7YG-1594609384489)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200702211257217.png)]

package web;

import entity.Dept;
import service.DeptService;
import service.impl.DeptServiceImpl;

import java.util.Scanner;

public class DeptCx {
    private DeptService deptService=new DeptServiceImpl();//调用业务逻辑层 
   public void Docha() throws Exception {
       Scanner sc=new Scanner(System.in);
       System.out.println("输入你要查找的部门编号");
       int deptno=sc.nextInt();
        Dept dept = deptService.finddeptno(deptno);
       System.out.println(dept.getDname()+"="+dept.getLoc());
   }
}

web层调用业务逻辑层,业务逻辑层调用dao层,dao层实现对数据库的操作

每一层都有每一层的接口外加实现类 去实现自己的方法 一层调用一层这就是三层架构

		//最后的测试类
    public class test {
    public static void main(String[] args) {
        DeptCx deptcx=new DeptCx();
        try {
           deptcx.Docha//实现类在调用类的方法
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

try {
       deptcx.Docha//实现类在调用类的方法
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值