jsp--4.分层实现业务处理--4.2.分层

一、三层模式的简介

1.三层模式的划分

2.层与层之间的关系

二、分层实现删除新闻主题

1.编写数据访问层组件(dao层)

  • 数据库连接的开闭由业务层统一管理
public class TopicsDaoImpl extends BaseDao implements TopicsDao {
  // Connection对象由业务层通过构造方法注入
    public TopicsDaoImpl(Connection conn) {
        super(conn);
    }
    …… // 省略部分方法
}

2.编写业务逻辑层组件(service层)

  • 封装业务流程并统一管理数据库连接和事务
try {
      conn = DatabaseUtil.getConnection();
      conn.setAutoCommit(false); // 关闭自动提交,开启事务
      // 为DAO组件设置数据库连接对象,保证整个流程使用同一个Connection对象
      NewsDao newsDao = new NewsDaoImpl(conn);
      TopicsDao topicsDao = new TopicsDaoImpl(conn);
      // 控制业务流程的执行
        ……
      conn.commit(); // 执行成功,提交事务
} catch (SQLException  e) {
        ……
      conn.rollback(); // 出现异常,回滚事务
        ……
} finally { // 业务完成后统一关闭数据库连接
      DatabaseUtil.closeAll(conn, null, null);
}

3.修改控制页面(.jsp文件)

<%…… // 省略部分代码
    TopicsService topicsService = new TopicsServiceImpl();
    if ("del".equals(opr)) { //删除主题
          String tid = request.getParameter("tid");
          int result = topicsService.deleteTopic(Integer .parseInt(tid));
          if (result == -1) {
                out.print("<script type=\"text/javascript\">");
                out.print("alert(\"该主题下还有文章,不能删除!\");");
                out.print("location.href=\"topic_control.jsp?opr=list\";");
                out.print("</script>");
          } else if (result == 0) {
                      ……
          }
             ……
    } …… // 省略其他操作代码
%>

三、分层原则

上层依赖其下层,依赖关系不跨层

  • 表示层不能直接访问数据访问层
  • 上层调用下层的结果,取决于下层的实现

下一层不能调用上一层

下一层不依赖上一层

  • 上层的改变不会影响下一层
  • 下层的改变会影响上一层得到的结果

在上一层中不能出现下一层的概念

  • 分工明确,各司其职

四、分层开发的优势

  • 职责清晰
  • 无损替换
  • 复用代码
  • 降低了 依赖程度
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值