SSM整合

SSM整合思路

  1. spring : 业务层,管理service、dao、工具类对象
  2. springmvc:视图层,界面层,负责接受请求,显示处理结果的。
  3. mybatis:持久层,访问数据库的。
    用户发起请求-- springmvc接收---spring中的service对象---MaBatis处理数据
    SSM整合也叫作SSI(IBatis也就是mybatis的前身),整合中有容器。
  • 第一个容器springmvc容器,管理controller控制器对象 - 第二个容器spring容器,管理service,dao工具类对象的
    我们要做的把使用的对象交给合适的容器对象创建,管理。把Controller还有web开发的相关对象,交给springmvc容器,这些web用的对象写在springmvc配置文件中。
    service,到定义在spring的配置文件中,让spring管理这些对象。

springmvc容器和spring容器是有关系的,关系已经确定好了。
springmvc容器是spring容器的子容器,类似java中的继承。字可以访问付的内容。
在子容器中的Controler可以访问父容器中的service对象,就可以实现controller使用service对象、

  • 实现步骤
  1. 使用springdb的mysql库
  2. 新建maven web项目
  3. 加入依赖:
    springmvc、spring、mybatis、jackson、mysql、druid、jsp、servlet
  4. 写web.xml:
    注册DispathcherServlet: 创建springmvc容器对象,才能创建Controller类对象,创建servlet,才能接受用户的请求。
    注册spring监听器:ContextLoaderListener,目的:创建spring容器对象,次啊能创建service,到等对象。
    注册字符集过滤器,解决post请求乱码的问题。
  5. 创建包,Controller包,service,dao,实体类包名创建号
  6. 写springmvc,spring,mabatis的配置文件
    springmvc配置文件
    spring配置文件
    mybatis主配置文件
    数据库属性的配置文件
  7. 写代码 ,dao接口 mapper文件,service和实现类,controller,实体类
  8. 写jsp页面
  • pom.xml



  4.0.0

  com.lz
  ssm01-lz
  1.0
  war



  
    UTF-8
    1.8
    1.8
  

  
    
      junit
      junit
      4.11
      test
    
    
      junit
      junit
      4.11
      test
    

    
    
      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    

    
    
      javax.servlet.jsp
      javax.servlet.jsp-api
      2.3.1
      provided
    

    
    
      org.springframework
      spring-webmvc
      5.2.5.RELEASE
    

    
    
      org.springframework
      spring-tx
      5.2.5.RELEASE
    

    
      org.springframework
      spring-jdbc
      5.2.5.RELEASE
    

    
    
      com.fasterxml.jackson.core
      jackson-core
      2.9.0
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.0
    

    
    
      org.mybatis
      mybatis
      3.5.6
    
    
      org.mybatis
      mybatis-spring
      1.3.1
    

    
    
      mysql
      mysql-connector-java
      5.1.9
    

    
    
      com.alibaba
      druid
      1.1.12
    

  

  
    
    
      
        src/main/java
        
          **/*.properties
          **/*.xml
        
        false
      

      
        src/main/resources
        
          **/*.properties
          **/*.xml
        
        false
      
    
  

  • web.xml



  
    myWeb
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:conf/dispatcherServlet.xml
    
    1
  
  
    myWeb
    *.do
  
  
  
    contextConfigLocation
    classpath:conf/applicationContext.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  


  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf-8
    
    
      forceRequestEncoding
      true
    
    
      forceResponseEncoding
      true
    
  
  
    characterEncodingFilter
    /*
  
  


  • springmvc.xml




    

    
        
        
    

    


  • jdbc.properties
jdbc.url=jdbc:mysql://localhost:3306/door
jdbc.username=root
jdbc.password=root

  • spring.xml



    

    
        
        
        
    

    
        
        
    
    
    
        
        
    

    

    


  • mybatis.xml




    

        
    


    


        
    


  • dao层 mapper and StudentDao
public interface StudentDao {
    int insertStudent(Student student);
    List selectStudent();
}




    
    
        insert into student(name, age) values (#{name}, #{age})
    

  • service 接口 实现类
public interface StudentService {
    int addStudent(Student student);
    List findStudent();
}

@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentDao studentDao;
    @Override
    public int addStudent(Student student) {
        int nums = studentDao.insertStudent(student);
        return nums;
    }

    @Override
    public List findStudent() {
        return  studentDao.selectStudent();
    }
}

  • controller

@Controller
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentService service;
    //注册学生
    @RequestMapping("/addStudent.do")
    public ModelAndView addStudent(Student student){
        ModelAndView view = new ModelAndView();
        String tips;
        // 调用service处理student
        int i = service.addStudent(student);
        if (i > 0){
            // 注册成功
            tips = "学生{" + student.getName()+"}注册成功";
        }else {
            tips = "注册识别";
        }
        view.addObject("tips", tips);
        view.setViewName("result");
        return view;
    }

    // 处理查询 ,响应ajax
    @RequestMapping("/queryStudent")
    @ResponseBody
    public List queryStudent(){
        List students = service.findStudent();
        return students;
    }
}

  • WEB/INF/jsp/result.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${requestScope.get("tips")}


  • addStudent.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" +
    request.getServerName() + ":" + request.getServerPort() +
     request.getContextPath() + "/";
%>


    注册学生
    


    
姓名:
年龄:
      
  • index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" +
            request.getServerName() + ":" + request.getServerPort() +
            request.getContextPath() + "/";
%>


    Title
    


    



  • listStudent.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" +
            request.getServerName() + ":" + request.getServerPort() +
            request.getContextPath() + "/";
%>


    查询学生
    
    
    


    
学号 姓名 年龄

你可能感兴趣的:(SSM整合)