• 整合SSM(Mybatis-Spring-SpringMVC层)


    环境:
    IDEA

    MySQL 5.7.19

    Tomcat 9

    Maven 3.6

    (1)数据库环境
    创建一个存放书籍数据的数据库表,需要注意是一个行模块进行执行,不要全部一起,会报错

    CREATE DATABASE ssmbuild;

    USE ssmbuild;

    DROp TABLE IF EXISTS books;

    CREATE TABLE books (
    bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT ‘书id’,
    bookName VARCHAr(100) NOT NULL COMMENT ‘书名’,
    bookCounts INT(11) NOT NULL COMMENT ‘数量’,
    detail VARCHAr(200) NOT NULL COMMENT ‘描述’,
    KEY bookID (bookID)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8

    INSERT INTO books(bookID,bookName,bookCounts,detail)VALUES
    (1,‘Java’,1,‘从入门到放弃’),
    (2,‘MySQL’,10,‘从删库到跑路’),
    (3,‘Linux’,5,‘从进门到进牢’);
    基本环境搭建
    (2)新建一Maven项目!ssmbuild
    (3)导入相关的pom依赖

    junit junit 4.12 mysql mysql-connector-java 5.1.47 com.mchange c3p0 0.9.5.5
    
    
        javax.servlet
        servlet-api
        2.5
    
    
        javax.servlet.jsp
        jsp-api
        2.2
    
    
        javax.servlet
        jstl
        1.2
    
    
    
    
        org.mybatis
        mybatis
        3.5.9
    
    
        org.mybatis
        mybatis-spring
        2.0.6
    
    
    
    
        org.springframework
        spring-webmvc
        5.3.19
    
    
        org.springframework
        spring-jdbc
        5.3.19
    
    
        org.projectlombok
        lombok
        1.18.24
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    (4)maven资源过滤设置 src/main/java ***.xml false src/main/resources ***.xml false (5)连接数据库 设置时间区域(版本过低的需要!)

    输入账户密码,测试是否成功!

    选择创建的数据库(ssmbuild)

    (6)建立基本结构和配置框架
    com.gt.pojo

    com.gt.mapper

    com.gt.service

    com.gt.controller

    mybatis-config.xml

    applicationContext.xml Mybatis层编写 (7)数据库配置文件 database.properties jdbc.driver=com.mysql.jdbc.Driver # 如果使用的是MySQL8.0+,增加一个时区的配置; &serverTimezone=Asia/Shanghai jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=123456 (8)在mybatis-config中配置别名 (9)idea关联数据库 (若前面连接的时候关联就不需要管它) (10)编写数据库表对应的实体类 Books 这里用到lombok插件,要提前把项目包导入pom当中 org.projectlombok lombok 1.16.10 (11)创建pojo中创建Books,编写有参无参构造 @Data @NoArgsConstructor @AllArgsConstructor public class Books { private int bookID; private String bookName; private String bookCounts; private String detail; } 左边可以查看构造出的函数,有有参、无参、toString()方法等!

    (12)编写dao层的mapper接口,只要有一个pojo下一步就是在dao层编写接口
    后面在删除和查询一本书的时候需要加上@Param(“bookID”)

    package com.gt.dao;

    import com.gt.pojo.Books;

    import java.util.List;

    public interface BookMapper {

    //    增加一本书
    int addBook(Books books);
    
    //    删除一本书
    int deleteBook(Books book);
    
    //    更新一本书
    int updateBook(Books books);
    
    //    查询一本书
    Books queryBook(int id);
    
    //    查询全部的书
    List queryAllBook();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    }
    (13)编写接口对应的Mapper.xml文件(BookMapper.xml),需要导入mybatis的包
    记住创建了BookMapper接口后下一步骤就是创建BookMapper.xml文件!

    (14)对照BookMapper接口在BookMapper.xml文件中进行编写
    
        insert into ssmbuild.books (bookName,bookCounts,detail)
        values (#{bookName},#{bookCounts},#{detail})
    
    
    
        delete from ssmbuild.books where bookID = #{bookId}
     
    
    
        updated ssmbuild.books
        set bookName=#{bookName},bookCount=#{bookCounts},delails=#{delail}
        where bookID=#{bookId}
    
    
    
        select * from ssmbuild.books
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22


    记得删除和查询一本书都需要加上@Param(“bookId”)

    (15)去mybatis-config.xml中记得注册

    
        
    
    
    • 1
    • 2
    • 3

    (16)编写service业务层的接口和实现类
    BookService.java

    package com.gt.service;

    import com.gt.pojo.Books;

    import java.util.List;

    public interface BookService {
    //增加一本书
    int addBook(Books books);

    //删除一本书
    int deleteBook(int id);
    
    //更新一本书
    int updateBook(Books books);
    
    //查询一本书
    Books queryBookById(int id);
    
    //查询全部的书
    List queryAllBook();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    }
    BookServiceImpl.java

    package com.gt.service;

    import com.gt.dao.BookMapper;
    import com.gt.pojo.Books;

    import java.util.List;

    public class BookServiceImpl implements BookService{

    // service调用dao层:组合Dao
    private BookMapper bookMapper;
    public void setBookMapper(BookMapper bookMapper) {
    this.bookMapper = bookMapper;
    }

    public int addBook(Books books) {
        return bookMapper.addBook(books);
    }
    
    
    public int deleteBook(int id) {
        return bookMapper.deleteBook(id);
    }
    
    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }
    
    public Books queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }
    
    public List queryAllBook() {
        return bookMapper.queryAllBook();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    }

    Spring层
    (17)配置spring整合mybatis,我们这里数据源使用c3p0连接池,在resources中创建spring-dao.xml,添加到上一个就行
    spring-dao.xml

    (18)我们去编写spring整合mybatis的相关的配置文件 spring-dao.xml

    前提是要导入c3p0的包

    在配置连接池的时候,要对应database.properties

    spring-dao.xml

    
    
    
    
    
    
        
        
        
        
    
        
        
        
        
        
        
        
        
        
    
    
    
    
    
        
        
        
    
    
    
    
        
        
        
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    (19)spring整合service层 spring-service.xml
    spring-service.xml

    
    
    
    
    
        
    
    
    
    
        
        
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    如果bookMapper报错,证明三个xml文件没有关联起来可以通过配置applicationContext来配置

    加入@Service、@Autowired注入成功

    SpringMVC层

    (20)添加web项目

    (21)web.xml

    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
    
    
        springmvc
        /
    
    
    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
    
        encodingFilter
        /*
    
    
    
    
        15
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    (22)spring-mvc.xml

    
    
    
    
    
    
    
    
    
    
    
        
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14


    (21)spring配置整合文件 applicationContext.xml

    
    
    
    
    • 1
    • 2
    • 3


    总代码

    BookMapper:

    package com.gt.dao;

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

    import java.util.List;

    public interface BookMapper {

    //    增加一本书
    int addBook(Books books);
    
    //    删除一本书
    int deleteBook(@Param("bookId") int id);
    
    //    更新一本书
    int updateBook(Books books);
    
    //    查询一本书
    Books queryBookById(@Param("bookId") int id);
    
    //    查询全部的书
    List queryAllBook();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    }

    BookMapper.xml :

    
        insert into ssmbuild.books (bookName,bookCounts,detail)
        values (#{bookName},#{bookCounts},#{detail})
    
    
    
        delete from ssmbuild.books where bookID = #{bookId}
     
    
    
        updated ssmbuild.books
        set bookName=#{bookName},bookCount=#{bookCounts},delails=#{delail}
        where bookID=#{bookId}
    
    
    
        select * from ssmbuild.books
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    Books:

    package com.gt.pojo;

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Books {

    private int bookID;
    private String bookName;
    private String bookCounts;
    private String detail;
    
    • 1
    • 2
    • 3
    • 4

    }

    BookService:

    package com.gt.service;

    import com.gt.pojo.Books;

    import java.util.List;

    public interface BookService {
    //增加一本书
    int addBook(Books books);

    //删除一本书
    int deleteBook(int id);
    
    //更新一本书
    int updateBook(Books books);
    
    //查询一本书
    Books queryBookById(int id);
    
    //查询全部的书
    List queryAllBook();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    }

    BookServiceImpl:

    package com.gt.service;

    import com.gt.dao.BookMapper;
    import com.gt.pojo.Books;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import java.util.List;

    @Service
    public class BookServiceImpl implements BookService{

    // service调用dao层:组合Dao
    @Autowired
    private BookMapper bookMapper;
    public void setBookMapper(BookMapper bookMapper) {
    this.bookMapper = bookMapper;
    }

    public int addBook(Books books) {
        return bookMapper.addBook(books);
    }
    
    
    public int deleteBook(int id) {
        return bookMapper.deleteBook(id);
    }
    
    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }
    
    public Books queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }
    
    public List queryAllBook() {
        return bookMapper.queryAllBook();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    }

    applicationContext:

    
    
    
    
    • 1
    • 2
    • 3


    database.properties:

    jdbc.driver=com.mysql.jdbc.Driver

    如果使用的是MySQL8.0+,增加一个时区的配置; &serverTimezone=Asia/Shanghai

    jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8
    jdbc.username=root
    jdbc.password=123456
    mybatis-config:

    
    
        
    
    
    • 1
    • 2
    • 3
    • 4
    
        
    
    
    • 1
    • 2
    • 3

    spring-dao.xml:

    
    
    
    
    
    
        
        
        
        
    
        
        
        
        
        
        
        
        
        
    
    
    
    
    
        
        
        
    
    
    
    
        
        
        
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    spring-mvc:



    mvc:annotation-driven

    mvc:default-servlet-handler

    
    
        
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    spring-service:

    
    
    
    
    
        
    
    
    
    
        
        
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15


    文章转自:整合SSM(Mybatis-Spring-SpringMVC层)_Java-答学网

    作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

  • 相关阅读:
    js刷题常用基础函数&常用快捷键
    Spring Boot 项目使用Spring Security防护CSRF攻击实战
    Java -- 每日一问:Java并发包提供了哪些并发工具类?
    (Clock Domain Crossing)跨时钟域信号的处理 (自我总结)
    【ESD专题】案例:双层SAM卡接口是每个脚都需要静电防护吗?
    java基本概念(更新中)
    C++的自定义结构——枚举、结构体、联合体
    请教一个私人问题私人问题
    C++:CRTP(Curiously Recurring Template Pattern 奇异递归模板)
    【通信原理】通信系统概念、组成、分类、度量的分析与研究
  • 原文地址:https://blog.csdn.net/zl5186888/article/details/126814514