7.21第二次实训课笔记

第二次实训课笔记

实训感受

  1. 今天学了SSM框架,在导入Maven包的时候,花了很长时间。第一次接触感觉比较陌生,相信多练习以后会好很多。
  2. 今天布置了团队工作,画一个思维导图,我第一次做队长,感觉肩上有责任,要跟队友们一起好好完成这次项目。
    总的来说,今天比较能够进入状态了,跟队友的交流也多了一些,对SSM框架有了初步的认识。

实训过程

  1. 讲解昨天布置的登录模块
  2. 新建一个Maven项目。等待包的加载。

在这里插入图片描述

  1. 导入配置文件,本次项目有五个配置文件。
    (1),applicationContext.xml:文件中主要存储一些配置信息,用于完成Spring和MyBatis之间的组合,主要用于配置bean自动扫描,数据库和事务等等。
    (2),pom.xml:主要存储数据库连接的代码
    (3),properties.xml:用于处理日志
    (4),spring-mvc.xml:用于注射映射器和适配器
    (5),web.xml:用于依赖的声明等等
  2. 编写代码
    文件结构

在这里插入图片描述
在这里插入图片描述
controller层

package com.zr.controller;

import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping("login.do")
    public ModelAndView login(String username,String password){
        boolean flag=userService.login(username,password);
        ModelAndView modelAndView=new ModelAndView();
        if(flag){
            modelAndView.setViewName("../ok");
        }
        else {
            modelAndView.setViewName("../failure");
        }
        return modelAndView;
    }
}

service层
UserServiceImpl.java

package com.zr.service.impl;

import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements IUserService {
    @Autowired
    private IUserDao userDao;

    @Override
    public boolean login(String username, String password) {
        User user=userDao.findUserByUsername(username);
        if(user!=null&&user.getPassword().equals(password)){
            return true;
        }
        else {
            return false;
        }

    }

}

IUserService.java

package com.zr.service;

public interface IUserService {
    boolean login(String username,String password);
}

dao层

package com.zr.dao;

import com.zr.bean.User;

public interface IUserDao {
    User findUserByUsername(String username);

}

bean层

package com.zr.bean;

public class User {
    private int id;
    private String username;
    private String password;

    public User() {
    }

    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
    <select id="findUserByUsername" parameterType="String" resultType="com.zr.bean.User">
        select * from tb_user where username=#{username}
    </select>
</mapper>

结果展示

登录界面
在这里插入图片描述

登录成功
在这里插入图片描述

登录失败
在这里插入图片描述

总结

Spring MVC 拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层。

Spring 容器属于协调上下文,管理对象间的依赖,提供事务机制。

持久层:DAO层(mapper)

DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,

DAO层的设计首先是设计DAO的接口,
然后在Spring的配置文件中定义此接口的实现类,

然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,

DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

业务层:Service层

Service层:Service层主要负责业务模块的逻辑应用设计。

首先设计接口,再设计其实现的类

接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。

Service层的业务实现,具体要调用到已定义的DAO层的接口,

封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

表现层:Controller层

Controller层:Controller层负责具体的业务模块流程的控制。

在此层里面要调用Service层的接口来控制业务流程。

控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

Service逻辑层设计

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。

使用spring MVC负责请求的转发和视图管理。

spring实现业务对象管理,mybatis作为数据对象的持久化引擎。

在执行上,用户的指令通过mapping映射到controller层,Controller调用业务逻辑处理后,跳转到ModelAndView,然后DispacherSerclet查询视图解析器,找到ModelAndView指定的视图,最后讲该视图显示到客户端web上。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值