不适用MVC架构模式完成银行账户转账

您所在的位置:网站首页 mvc设计模式是什么? 不适用MVC架构模式完成银行账户转账

不适用MVC架构模式完成银行账户转账

2023-05-15 17:58| 来源: 网络整理| 查看: 265

不适用MVC架构模式完成银行账户转账 原创

进击的菜鸟子 2023-05-08 13:50:30 博主文章分类:MVC ©著作权

文章标签 sql 业务逻辑 java 文章分类 Java 后端开发 yyds干货盘点

©著作权归作者所有:来自51CTO博客作者进击的菜鸟子的原创作品,请联系作者获取转载授权,否则将追究法律责任 1. 程序编写 63-64代码在com.powernode.bank.web.servletAccountTransferServletpackage com.powernode.bank.web.servlet; import com.powernode.bank.exceptions.AppException; import com.powernode.bank.exceptions.MoneyNotEnoughException; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.sql.*; //这是一个转账的servlet 63 //在不使用mvc架构的模式下,完成银行账户的转账 //分析这个程序有那些问题 /** * 在不使用MVC架构模式的前提下,完成银行账户转账。 * 分析这个程序存在哪些问题? * 缺点1> 代码的复用性太差。(代码的重用性太差) * 导致缺点1的原因? * 因为没有进行“职能分工”,没有独立组件的概念,所以没有办法进行代码复用。代码和代码之间的耦合度太高,扩展力太差。 * 缺点2> 耦合度高,导致了代码很难扩展。 * 缺点3> 操作数据库的代码和业务逻辑混杂在一起,很容易出错。编写代码的时候很容易出错,无法专注业务逻辑的编写。 * * 分析以下AccountTransferServlet他都负责了什么? * 1> 负责了数据接收 * 2> 负责了核心的业务处理 * 3> 负责了数据库表中数据的CRUD操作(Create【增】 Retrieve【查】 Update【改】 Delete【删】) * 4> 负责了页面的数据展示 * .... */ @WebServlet("/transfer") public class AccountTransferServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取响应流对象(就是输出到浏览器页面上) response.setContentType("text/html;"); PrintWriter out = response.getWriter(); //获取转账相关信息 String fromActno = request.getParameter("fromActno"); String toActno = request.getParameter("toActno"); double money = Double.parseDouble(request.getParameter("money")); //连接数据库,编写业务逻辑代码,进行转账操作 // 1. 转账之前要判断转出账户的余额是否充足 Connection conn = null; PreparedStatement ps = null; PreparedStatement ps2 = null; PreparedStatement ps3 = null; ResultSet rs = null; try { //注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //获取链接 String url = "jdbc:mysql://localhost:3306/mvc"; String user = "root"; String password = "lzl"; conn = DriverManager.getConnection(url, user, password); //开启事务,(不在自动提交,改为手动提交,业务完成后在提交) 64 conn.setAutoCommit(false); //获取预编译的数据库操作对象 String sql1 = "select balance from t_act where actno = ?"; ps = conn.prepareStatement(sql1); //给问号赋值 ps.setString(1,fromActno); //执行sql语句,返回结果集 rs = ps.executeQuery(); //处理结果集 if(rs.next()){ double balance = rs.getDouble("balance"); if(balance 负责了数据接收

2> 负责了核心的业务处理

3> 负责了数据库表中数据的CRUD操作(Create【增】 Retrieve【查】 Update【改】 Delete【删】)

4> 负责了页面的数据展示

....

2.2 分析这个程序存在哪些问题?64

缺点1> 代码的复用性太差。(代码的重用性太差)

导致缺点1的原因?

因为没有进行“职能分工”,没有独立组件的概念,所以没有办法进行代码复用。代码和代码之间的耦合度太高,扩展力太差。

缺点2> 耦合度高,导致了代码很难扩展。

缺点3> 操作数据库的代码和业务逻辑混杂在一起,很容易出错。编写代码的时候很容易出错,无法专注业务逻辑的编写。

收藏 评论 分享 举报

上一篇:面向对象中级练习

下一篇:jQuery基本介绍



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3