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

SSM整合

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

SSM整合

SpringMVC :视图层,界面层,负责接受请求,显示处理结果的

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

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

用户发起请求 --- springMVC接受-- Spring中的Service对象--MyBatis处理数据

  1. 第一个容器SpringMVC容器,管理Controller控制器对象

  2. 第二个容器Spring容器,管理Service,dao,工具类对象,我们要把使用的对象交给合适的容器创建,管理。把controller还有还有web开发的相关对象交给Springmvc容器,这些web用的对象写在springmvc配置文件中

  3. service,dao对象定义在spring的配置文件中,让spring管理这些对象

  4. springmvc和spring是有关系的,springmvc是spring的子容器,类似于java中的继承。子可以访问父的内容,在自容器中的Controller可以访问父容器中的service对象,就可以实现Controller使用service对象

实现步骤

  1. 创建数据库

  1. 新建maven web项目

  2. 加入依赖

    springmvc,spring,mybatis,三个框架的依赖,jackson,mysql,druid,jsp,servlet依赖

  3. 创建包,Controller包,service, dao, 实体类包

  4. 写springmvc,spring,mybatis的配置文件

    1. springmvc配置文件

    2. spring配置文件

    3. mybatis配置文件

    4. 数据库属性配置文件

  5. 写web.xml

    1. 注册DispatcherServlet, 目的:(1)创建springmvc容器对象,才能创建Controller类对象。(2)创建的是servlet,才能接受用户请求

    2. 注册spring的监听器:ContextLoaderListener,目的:创建spring的容器对象,才能创建service, dao等对象

    3. 注册字符集过滤器,解决post请求乱码问题

  6. 写代码,dao接口,mapper文件,service和实现类,Controller,实体类

  7. 写jsp

整合代码

  1. 创建数据库

     create table `books`(
     `bookid` int(10) not null primary key AUTO_INCREMENT,
     `bookname` varchar(100) not null,
     `bookCount` int(20) not null,
     `details` varchar(200) not null
     ) engine=innodb default charset=utf8;
     ​
     insert into books(`bookid`,`bookname`,`bookCount`,`details`) values
     (1,"Java",1,"从入门到放弃"), 
     (2,"MySQL",10,"从删库到跑路"), 
     (3,"Linux",5,"从进门到进牢");
     
  2. 新建maven web项目

  3. 新建maven web项目加入依赖

    
      
        
          junit
          junit
          4.11
        
    
        
          mysql
          mysql-connector-java
          8.0.21
        
    
    
        
          javax.servlet
          jstl
          1.1.2
        
        
        
          com.mchange
          c3p0
          0.9.5.2
        
    
    
        
          com.alibaba
          druid
          1.1.10
        
    
    
        
          javax.servlet
          javax.servlet-api
          4.0.1
          provided
        
    
        
          javax.servlet.jsp
          jsp-api
          2.2
          provided
        
    
    
        
          org.mybatis
          mybatis
          3.5.3
        
      
    
        
          org.mybatis
          mybatis-spring
          2.0.6
        
      
    
        
          org.springframework
          spring-webmvc
          5.3.9
        
    
    
        
          org.springframework
          spring-tx
          5.3.8
        
    
        
          org.springframework
          spring-jdbc
          5.3.9
        
    
    
    
    
        
          
            src/main/java
            
              ***.xml
            
            false
          
          
            src/main/resources
            
              ***.xml
            
            false
          
        
     

  4. 建包。pojo(实体类),dao,service,controller

     

     

  5. 写配置文件

 

mybatis层

mybatis-config.xml





  

    
        
    
    

    
        
    

 database.properties

jdbc.driver=com.mysql.jdbc.Driver
#mysql 8.0以上需要加入设置时区 &serverTimezone=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3306/springdb?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root

spring层

spring-dao.xml




    

    
        
        
        
        
     


    

        

        
     


    

        

        
    

spring-service.xml






    


    


    
        
    


 

springMVC层

spring-mvc.xml




    

    

    

    
        
        
    

 

整合所有

applicationContext.xml



    
    
    

web.xml




    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation

            classpath:applicationContext.xml
        
        1
    
    
        springmvc
        /
    


    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        encodingFilter
        /*
    


    
        30
    

实现包,类,接口

先写pojo中实体类,注意实体类的属性名应与数据库中字段名一致

Books.java

package com.example.pojo;

public class Books {

    private Integer bookid;
    private String bookname;
    private Integer bookCount;
    private String details;

    public Books() {
    }

    public Books(Integer bookid, String bookname, Integer bookCount, String details) {
        this.bookid = bookid;
        this.bookname = bookname;
        this.bookCount = bookCount;
        this.details = details;
    }

    @Override
    public String toString() {
        return "Books{" +
                "bookid=" + bookid +
                ", bookname='" + bookname + ''' +
                ", bookCount=" + bookCount +
                ", details='" + details + ''' +
                '}';
    }

    public Integer getBookid() {
        return bookid;
    }

    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public Integer getBookCount() {
        return bookCount;
    }

    public void setBookCount(Integer bookCount) {
        this.bookCount = bookCount;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }
}

写操作数据库的dao层接口和相应的mapper

bookMapper.java

package com.example.dao;

import com.example.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface bookMapper {
    //查找一本书
    Books queryBookById(@Param("bookId") Integer id);

    //增加一本书
    int addBook(Books book);

    //删除一本书
    int deleteBookById(@Param("bookId") Integer id);

    //更新一本书
    int updateBook(Books book);

    //查找所有书
    List queryAllBooks();
}

bookMapper.xml





    
        insert into springdb.books (bookname,bookCount,details)
        values (#{bookname},#{bookCount},#{details})
    

    
        delete from springdb.books where bookid = #{bookId}
    

    
        update springdb.books
        set bookname=#{bookname} ,bookCount=#{bookCount},details=#{details}
        where bookid = #{bookid}
    

    
        select * from springdb.books
    

"springdb" 数据库名称 ;”books“ 表名 (IDEA 关联数据库的写法,如果IDEA没直接连接数据库,可以直接写表名即,insert into springdb.books ====>insert into books

如上图所示为IDEA连接了数据库。没有连接也没有问题

IDEA关联数据库

IDEA关联数据库_月入窗来的博客-CSDN博客

 

写service层业务接口及其实现类

bookService.java

package com.example.service;

import com.example.pojo.Books;

import java.util.List;

public interface bookService {
    //查找一本书
    Books queryBookById( Integer id);

    //增加一本书
    int addBook(Books book);

    //删除一本书
    int deleteBookById(Integer id);

    //更新一本书
    int updateBook(Books book);

    //查找所有书
    List queryAllBooks();
}

bookServiceImpl.java

package com.example.service;

import com.example.dao.bookMapper;
import com.example.pojo.Books;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class bookServiceImpl implements bookService{
//    业务层调dao层
    @Resource
    private bookMapper  bookMapper;

    public void setBookMapper(com.example.dao.bookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }

    @Override
    public Books queryBookById(Integer id) {
        return bookMapper.queryBookById(id);
    }

    @Override
    public int addBook(Books book) {
        return bookMapper.addBook(book);
    }

    @Override
    public int deleteBookById(Integer id) {
        return bookMapper.deleteBookById(id);
    }

    @Override
    public int updateBook(Books book) {
        return bookMapper.updateBook(book);
    }

    @Override
    public List queryAllBooks() {
        return bookMapper.queryAllBooks();
    }
}

写controller层

bookController.java

package com.example.controller;

import com.example.pojo.Books;
import com.example.service.bookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
@RequestMapping("/book")
public class BookController {
//    Controller层调Service层
    @Autowired
    private bookService bookService;

    //查询所有书籍
    @RequestMapping("/allBook")
    public String BookList(Model model){
        List books = bookService.queryAllBooks();
        model.addAttribute("books",books);
        return "allBook";
    }
}

/WEB-INF/jsp/allBook.jsp

allBook.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  书籍展示




index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  主页


跳转到书籍展示页面

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

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

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