到底如何去理解MVC思想

很多同学在开始学习理解MVC的时候有很多疑惑:

1这到底是个什么玩意

2这个到底有什么用

3这个如何帮助我们写代码

4这个怎么去理解

首先第一个问题:就是一种思路,一种思想上的模板,举个例子,就好比我们做一道鸡兔同笼的数学题的时候,你会想到怎么去解?答案是:方程。对的,你想到的用方程去解决,就是相当于用MVC思想去写程序。是一种什么思想呢?M代表的是数据操作,V代表的是前端展示,C代表的是控制层。

其次第二个问题:在很多初步步入编程的同学将前面所学的的东西拿出来写的时候要么是很乱的,要么就是找到问题的突破口很慢或者很难。但是当你建立起这个思想了,你就会知道从哪里突破,比如一个管理系统,你首先要写增删改查的,你可以根据前端相应的接口(V)去到后端dao层或者service层(M)去写对应的数据库操作,最后通过controller层(C)去将dao或者service层的东西响应给前端(V)并展示出来。

至于第三个问题:下面我通过一个项目目录做一个说明:

前端实现这里用的ajax

先写了实体

开始上正餐,举个例子来说明这个流程,下图为dao层我写的一个查询的数据库操作。

public List<User> selectAll() {
        //查询所有
        String sql = "select * from user";
        try {
            con = JDBCUtil.getCon();//ctr+alt+t
            pre = con.prepareStatement(sql);
            re = pre.executeQuery();
            //定义一个list
            ArrayList<User> users = new ArrayList<>();
            while (re.next()){
                User user = new User();
                user.setUserId(re.getInt("user_id"));
                user.setUserName(re.getString("user_name"));
                user.setUserSex(re.getString("user_sex"));
                user.setUserAge(re.getInt("user_age"));
                user.setUserTel(re.getString("user_tel"));
                users.add(user);
            }
            return users;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.closeAll(re,pre,con);
        }
        return null;
    }

然后去service层,写判断

private UserDao userDao = new UserDaoImpl();
    @Override
    public Result selectAll() {
        List<User> users = userDao.selectAll();
        if(users!=null){
            return new Result("200","查询成功",users);
        }else{
            return new Result("500","查询失败",null);
        }
    }

最后到controller层响应给前端。

public void selectAll(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //调用业务逻辑层的selectAll方法
        Result result = userService.selectAll();
        ObjectMapper objectMapper = new ObjectMapper();
        //将result转化为我们的json格式传回给前端
        String resultJson = objectMapper.writeValueAsString(result);
        //响应给前端
        response.getWriter().write(resultJson);
    }

最后一个问题:我相信聪明的你已经知道如何理解MVC了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值