SSM框架整合


来源:https://mp.weixin.qq.com/s/SDxqGu_il3MUCTcN1EYrng

环境

  • IDEA 2020.2.3
  • MySQL 8.0.23
  • Tomcat 9.0.44
  • Maven 3.6.3

创建数据库表

  • 使用SQLyog ultimate
  • 单步执行
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,'从进门到进牢');

Maven项目搭建

框架搭建

1、新建maven项目ssmbuild,添加web支持

2、pom.xml导入依赖


    
    
        junit
        junit
        4.12
    
    
    
        mysql
        mysql-connector-java
        8.0.23
    
    
    
        com.mchange
        c3p0
        0.9.5.2
    

    
    
        javax.servlet
        servlet-api
        2.5
    
    
        javax.servlet.jsp
        jsp-api
        2.2
    
    
        javax.servlet
        jstl
        1.2
    

    
    
        org.mybatis
        mybatis
        3.5.7
    
    
        org.mybatis
        mybatis-spring
        2.0.6
    

    
    
        org.springframework
        spring-webmvc
        5.2.4.RELEASE
    
    
        org.springframework
        spring-jdbc
        5.1.9.RELEASE
    
    
        org.projectlombok
        lombok
        1.18.20
    

3、Maven资源过滤设置


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

4、建立基本结构和配置框架

  • com.txy.pojo

  • com.txy.dao

  • com.txy.service

  • com.txy.controller

  • mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    
    
    
    
    
  • applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    
    
    

配置Mybatis层

1、数据库配置文件 database.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8&&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=password

2、IDEA关联数据库

3、编写MyBatis的核心配置文件

  • typeAliases通过package的name属性直接指定包名,mybatis会自动扫描指定包下的javabean,并设置一个别名,默认名称为javabean的非限定类名。
<?xml version="1.0" encoding="UTF-8" ?>



    
        
    

    
        
    


4、编写数据库对应的实体类 com.txy.pojo.Books

  • IDEA2020需要增加lombok插件使得生效
package com.txy.pojo;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {

    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;
}

5、编写Dao层的 Mapper接口

package com.txy.dao;

import com.txy.pojo.Books;

import java.util.List;

public interface BookMapper {
    //增加一个Book
    int addBook(Books book);

    //根据id删除一个Book
    int deleteBookById(int id);

    //更新Book
    int updateBook(Books books);

    //根据id查询,返回一个Book
    Books queryBookById(int id);

    //查询全部Book,返回list集合
    List queryAllBook();
}

6、编写接口对应的 Mapper.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>


    
        insert into ssmbuild.books(bookName, bookCounts, detail)
        values (#{bookName},#{bookCounts},#{detail})
    
    
    
        delete from ssmbuild.books where bookID = #{bookID}
    
    
    
        update ssmbuild.books
        set bookName = #{bookName},bookCounts=#{bookCounts},detail=#{detail}
        where bookID = #{bookID}
    
    
    

    
            

7、编写Service层的接口和实现类

  • 接口

    package com.txy.service;
    
    import com.txy.pojo.Books;
    
    import java.util.List;
    
    public interface BookService {
    
        //增加一个Book
        int addBook(Books book);
    
        //根据id删除一个Book
        int deleteBookById(int id);
    
        //更新Book
        int updateBook(Books books);
    
        //根据id查询,返回一个Book
        Books queryBookById(int id);
    
        //查询全部Book,返回list集合
        List queryAllBook();
    
    }
    
  • 实现类

    package com.txy.service;
    
    import com.txy.dao.BookMapper;
    import com.txy.pojo.Books;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class BookServiceImpl implements BookService{
    
        //调用dao层的操作,设置一个set接口,方便Spring管理
        @Autowired
        private BookMapper bookMapper;
        public void setBookMapper(BookMapper bookMapper) {
            this.bookMapper = bookMapper;
        }
    
        @Override
        public int addBook(Books book) {
            return bookMapper.addBook(book);
        }
    
        @Override
        public int deleteBookById(int id) {
            return bookMapper.deleteBookById(id);
        }
    
        @Override
        public int updateBook(Books books) {
            return bookMapper.updateBook(books);
        }
    
        @Override
        public Books queryBookById(int id) {
            return bookMapper.queryBookById(id);
        }
    
        @Override
        public List queryAllBook() {
            return bookMapper.queryAllBook();
        }
    }
    

配置Spring层

1、整合MyBatis,数据源使用c3p0连接池

2、编写Spring整合Mybatis的相关的配置文件;spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>


    
    
    

    
    
    
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    


    
    
    
        
        
        
        
    


3、Spring整合service层

<?xml version="1.0" encoding="UTF-8"?>


    
    

    
    
        
    

    
    
        
        
    


配置SpringMVC

1、web.xml

<?xml version="1.0" encoding="UTF-8"?>


    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext.xml
        
        1
    
    
        springmvc
        /
    

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

    
        15
    


2、spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>


    
    
    

    
    

    
    
        
        
        
    

    
    



3、Spring配置整合文件,applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>


    
    
    


编写controller,jsp页面

https://mp.weixin.qq.com/s/SDxqGu_il3MUCTcN1EYrng