栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM整合开发(实现增删改)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM整合开发(实现增删改)

文章目录

SSM整合开发(实现增删改)

实现步骤

sql表pom.xml加入依赖web.xml

注册中央调度器注册spring监听器注册字符集过滤器 springmvc配置文件spring配置文件mybatis.xml配置文件实体类dao持久层service业务层controller视图层js可访问静态资源

index.jspregiester.jsplistStudent.jsp 禁止访问静态资源

result.jsp

SSM整合开发(实现增删改)

SpringMVC+Spring+Mybatis—>视图+service+dao(持久层)

SpringMVC:视图层,表示层。负责接收请求,显示处理结果的

Spring:业务层,管理service,dao,工具类对象的

Mybatis:持久层,访问数据库的

SSM整合也叫做SSI(I是Ibatis的意思,是Mybatis的前身),整合中有容器

    第一个容器是SpringMVC,管理Controller控制器对象的第二个容器是Spring,管理Service,Dao,工具类对象的

我们要做的把使用的对象交给合适的容器创建,管理。

那么两个容器之间怎么进行沟通呢?

两者是有关系的,并且是确定好的,SpringMVC是Spring的子容器,类似java的继承,子容器中的controller可以访问父容器的service
实现步骤
0.使用Springdb的mysql库,使用表stu(id auto_increment,name,age)
1.新建maven项目
2.加入依赖
springmvc spring mybatis jackson mysql druid jsp servlet
3.写web.xml 
	1)注册中央调度器:目的 1.创建sevlet接收请求
		2.创建springmvc容器,才能创建并转发给controller
	2)注册spring的监听器:ContextLoaderListener,目的:创建spring的容器对象,才能创建service,dao等对象
	3)注册字符集过滤器
4.创建包,controller service dao 实体类
5.写springmvc spring mybatis的配置文件
	1)springmvc配置文件
	2)spring配置文件
	3)mybatis配置文件
	4)数据库的配置文件
6.写代码,dao和mapper文件,service和实现类,controller,实体类
7.jsp视图
sql表
CREATE TABLE `stu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(80) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
pom.xml加入依赖


    
      junit
      junit
      4.11
      test
    

    
      org.springframework
      spring-context
      5.2.5.RELEASE
    

    
      org.springframework
      spring-webmvc
      5.2.5.RELEASE
    

    
      org.mybatis
      mybatis-spring
      1.3.1
    
    
    
      org.mybatis
      mybatis
      3.5.1
    

    
      org.springframework
      spring-tx
      5.2.5.RELEASE
    
    
    
      org.springframework
      spring-jdbc
      5.2.5.RELEASE
    
    
    
      com.fasterxml.jackson.core
      jackson-core
      2.9.8
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.8
    
    
    
      mysql
      mysql-connector-java
      8.0.13
    
    
    
      com.alibaba
      druid
      1.1.12
    
    
    
      javax.servlet.jsp
      jsp-api
      2.2.1-b03
    
    
      javax.servlet
      servlet-api
      2.5
    
  
web.xml 注册中央调度器

    myweb
    org.springframework.web.servlet.DispatcherServlet
    
    
        contextConfigLocation
        classpath:conf/dispatcherServlet.xml
    
    1


    myweb
    *.do

tip:中央调度器的处理路径是“*.do”或者“/”的区别?

当项目中使用了 / ,他会替代tomcat中的default,导致所有的静态资源都给DispatcherServlet处理,默认情况下DispatcherServlet是不处理静态文件的。所以此时对静态资源的访问都是404
动态资源some.do可以访问,因为我们程序中与对应的controller来处理some.do的请求

​ 那如果想访问静态资源呢?

在springmvc中加入标签
因为在使用了这个标签之后,框架在容器中会创建一个DefaultServletHttpRequestHandler处理器对象,该对象可以把接收的请求给tomcat的default的servlet


使用了该标签之后,框架在同其中会创建一个ResourceHttpRequestHandler处理器对象,不依赖tomcat服务器,自己去处理静态资源的访问
参数:
	mapping:访问静态资源的uri地址,使用通配符**
	lacation:静态资源在你项目中的目录位置



项目中一般会把静态资源文件放在static包下,统一管理,所以配置文件中只需要一行


注册spring监听器

    contextConfigLocation
    classpath:conf/contextLoaderListener.xml


    org.springframework.web.context.ContextLoaderListener

注册字符集过滤器

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


    characterEncodingFilter
    /*

springmvc配置文件






    
    


	  

特别注意

上边的驱动注册,需要指定的annotation-driven是==springframework.org/schema/mvc==下的

spring配置文件





      

     
        
        
        
    

    
          
          
    

    
        
        
    

    

    
    
    
    
    
        
            
        
    

mybatis.xml配置文件

    
        
    
    
    
        
        
    
    
        
        
        
    

代码目录结构

src
	-main
		-java
			-com
				-bjpowernode
					-controller
						StudentController.class//控制类
					-dao
						StudentDao.class   //dao接口
						StudentDao.xml 	   //配置对应的mapper
					-domain
						Student			  //实体类
					-service
						StudentService     //业务接口
						-impl
							StudentServiceImpl
		 -resources
		 	-cong
		 		contextLoaderListener.xml	//spring.xml
				dispatcherServlet.xml		//springmvc.xml
				jdbc.properties				//数据库信息配置文件
				mybatis.xml					//mybatis.xml
		 -webapp
			-images
			-js
				jquery		//ajax
			-jsp
                  regiester.jsp//注册页面
				 listStudent.jsp//查询页面                            
			-WEB-INF
				-jsp
					result.jsp
				web.xml
			index.jsp		
实体类
package com.bjpowernode.domain;
public class Student {
    private int id;
    private String name;
    private int age;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}
dao持久层
package com.bjpowernode.dao;
import com.bjpowernode.domain.Student;
import java.util.List;
public interface StudentDao {
    int insertStudent(Student student);
    List selectStudents();
}



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

service业务层
package com.bjpowernode.service;
import com.bjpowernode.domain.Student;
import java.util.List;
public interface StudentService {
    int addStudent(Student student);
    List findStudents();
}
package com.bjpowernode.service.impl;
import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service   //对应spring.xml中的注解扫描器
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 findStudents() {
        List students=new ArrayList<>();
        students=studentDao.selectStudents();
        return students;
    }
}
controller视图层
package com.bjpowernode.controller;

import com.bjpowernode.domain.Student;
import com.bjpowernode.service.StudentService;
import com.bjpowernode.service.impl.StudentServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("/student")   //请求映射包  /student
public class StudentController {
    @Autowired
    StudentService service=new StudentServiceImpl();
    //注册学生
    @RequestMapping("/addStudent.do")
    public ModelAndView addStudent(Student student){
        ModelAndView mv=new ModelAndView();
        String tips="注册失败";
        //调用service处理student
        int nums=service.addStudent(student);
        if (nums>0){
            //注册成功
            tips="学生"+student.getName()+"注册成功";
        }
        //添加数据
        mv.addObject("tips",tips);
        mv.setViewName("result");
        return mv;
    }
    @RequestMapping(value = "/queryStudents.do")   //请求映射,将中央调度器得到对应请求就来找该方法
    @ResponseBody
    //处理查询,响应ajax
    public List queryStudents(){
        List list=new ArrayList<>();
        list=service.findStudents();
        return list;
    }
}
js
jquery-3.4.1.js
可访问静态资源 index.jsp
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/3/13
  Time: 15:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

    <% String basePath = request.getScheme()+"://"+       
                request.getServerName()+":"+request.getServerPort()+
                request.getContextPath()+"/";%>

    功能入口
    


    

我是一个静态资源,不能显示

学生注册系统(SSM)

注册学生
浏览学生
regiester.jsp
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/3/13
  Time: 16:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<% String basePath = request.getScheme()+"://"+
            request.getServerName()+":"+request.getServerPort()+
            request.getContextPath()+"/";%>

    注册学生
    


学生姓名
学生年龄
listStudent.jsp
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/3/13
  Time: 17:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%
    String basePath = request.getScheme()+"://"+
            request.getServerName()+":"+request.getServerPort()+
            request.getContextPath()+"/";
%>

    学生查询
    
    
    


    
学号 姓名 年龄
禁止访问静态资源 result.jsp
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/3/13
  Time: 15:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    result.jsp 结果页面
    注册结果 ${tips}


tips:没写展示表单之前可以使用简单测试的方法,直接访问对应的jsp地址看时候得到对应的json数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号