JavaWEB(三层架构)

本文详细介绍了JavaWEB的三层架构,包括表示层、业务逻辑层和数据访问层的功能和实现方式。同时,提出了三层架构的优化策略,如面向接口开发和使用DBUtil数据库帮助类来简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、三层组成

1 表示层(USL,Userm Show Layer 视图层)
(1)前台:
对应于MVC中的View,用于与用户交互,界面的显示。
(通过jsp,js,html,css,jquery等Web前端技术)

代码位置:WebContent

(2)后台:
对应MVC的Controller,用于控制跳转,调用业务逻辑层.
(通过Selvlet ,SpringMVC ,Struts等实现)

2 业务逻辑层(BLL,Business Logic Layer; Service层)
接收表示层的请求 调用
组装数据访问层,逻辑性的操作(例如:增删改查 例如:删除操作:先判断是否存在,存在才删除(查+删))

3 数据访问层(DAL,Data Access Layer; Dao层)
直接访问数据库的操作,原子性的操作 (增删改查)
位于 xxx.dao包​​​​​​

二、三层优化 

(1).加入接口
建议面向接口开发:先接口-再实现类
(在service、dao中加入接口)

接口与实现类的命名规范:
① 接口 interface:
命名: IStudentService,IStudentDao

② 实现类 implements:
命名: StudentServiceImpl,StudentDaoImpl

接口: I实体类层所在包名 IStudentService、IStudentDao
所在的包: xxx.service xx.dao

实现类: 例如 StudentServiceImpl、StudentDaoImpl
所在的包:xxx.service.impl xx.dao.impl

使用接口/实现类时,推荐写法:
接口 x = new 实现类();
例:IStudentDao studentDao = new StudentDaoImpl();

 

(2).DBUtil
通用的数据库帮助类,可以简化Dao层的代码量

帮助类 一般建议写在 xxx.util包3、数据库访问层

①数据访问接口
 
里面写方法体,如:
 
public List<News> getAll();
public int addXw(News nx);
②数据访问接口的实现
 
就可以跟以前一样写方法,如:
 
//三兄弟
  private Connection con=null;
  private PreparedStatement ps=null;
  private ResultSet rs=null;
  
  /**
   * 查询全部新闻
   * @return 新闻集合
   */
  public List<News> getAll(){
    List<News> ls=new ArrayList<News>();
    try {
      //创建连接
      con=DBHelper.getCon();
      //定义sql语句
      String sql="select nid,nname,nzz from xw order by nid desc";
      //获得执行对象
         PreparedStatement ps=con.prepareStatement(sql);
         //获得结果集
         ResultSet rs=ps.executeQuery();
         while(rs.next()) {
           //实例化新闻对象
           News n=new News();
           //给对象赋值
           n.setNid(rs.getInt(1));
           n.setNname(rs.getString(2));
           n.setNzz(rs.getString(3));
           //加到集合中
           ls.add(n);
         }
    } catch (Exception e) {
      e.printStackTrace();
    }finally {
      DBHelper.myClose(con, ps, rs);
    }
    return ls;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值