整合 SSM 基本配置文件

一、运行环境

  • JDK 17
  • IDEA 2021.2
  • MySQL 8.0.28
  • Tomcat 9.0.60
  • Maven 3.8.4

二、Maven 依赖及资源过滤设置:pom.xml



    
    
        junit
        junit
        4.13.2
    
    
    
        mysql
        mysql-connector-java
        8.0.28
    
    
    
        com.mchange
        c3p0
        0.9.5.5
    
    
    
        javax.servlet
        javax.servlet-api
        4.0.1
    
    
        javax.servlet.jsp
        javax.servlet.jsp-api
        2.3.3
    
    
        javax.servlet
        jstl
        1.2
    
    
    
        org.mybatis
        mybatis
        3.5.9
    
    
        org.mybatis
        mybatis-spring
        2.0.7
    
    
    
        org.springframework
        spring-webmvc
        5.3.18
    
    
        org.springframework
        spring-jdbc
        5.3.18
    
    
    
        javax.annotation
        javax.annotation-api
        1.3.2
    
    
    
        org.aspectj
        aspectjweaver
        1.9.8
    




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

三、搭建项目基本结构

  • 包名及文件名均可自定义:

四、编写配置文件

4.1 数据库配置文件:

  • database.properties
# mysql8 驱动
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=true
jdbc.username=用户名
jdbc.password=密码

4.2 配置 MyBatis 层:

  1. 创建实体类
  • pojo 目录下创建数据库对应的实体类;
  1. 编写 dao 层
  • 目录结构:

  • 创建 Dao 层的 Mapper 接口:如:BookMapper

public interface BookMapper {
    // 操作数据库方法
    // 如:查询全部Book,返回list集合
    List queryAllBook();
}    
  • 创建接口对应的 Mapper.xml 文件:如 BookMapper.xml




    
       
    

  1. 编写 service 层
  • 目录结构:

  • 创建 Service 层的接口:如 BookService

public interface BookService {
    // 业务方法    
    // 如:查询全部Book,返回list集合
    List queryAllBook();
}        
  • 创建 Service 层的实现类:如 BookServiceImpl
public class BookServiceImpl implements BookService {
    // service层调用dao层:组合dao
    private BookMapper bookMapper;

    // 设置set接口,方便Spring管理
    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }
    
    @Override
    public List queryAllBook() {
        // 调用dao层的方法
        return bookMapper.queryAllBook();
    }
    // ....其它业务实现方法
}
  1. 配置核心配置文件:mybatis-config.xml



    
    
        
    
    
    
        
        
    
    
    
        
        
        
        
        
        
    

4.3 配置 Spring 层:

  • Spring 就是一个容器,整合 dao 层和 service 层;
  1. Spring 整合 MyBatis 层
  • 数据源为 c3p0,可更换为其它数据源;
  • 配置 Mybatis 的配置文件:spring-dao.xml


    
    
    

    
    
        
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    

  1. Spring 整合 service 层
  • 配置 service 层的配置文件:spring-service.xml


    
    

    
    
        
    

    
    
        
        
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

4.4 配置 SpringMVC 层

  • 模块添加 web 框架支持:

  • 配置 web.xml

    • 注意:加载的是 spring 总的配置文件 applicationContext.xml


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

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

    
    
        15
    

  • 配置 SpringMVC 的配置文件:如 springmvc-servlet.xml


    
    
    
    
    
    
    
    
    
        
        
        
        
    

  • 创建对应的 jsp 目录:

  • 整合 Spring 总配置文件:applicationContext.xml

    • web.xml 中需要加载这个总配置文件;


    
    
    
    
    
    

五、Controller 和视图层编写

5.1 Controller

  • 创建 Controller 类:如 BookController

  • 示意图:

@Controller
@RequestMapping("/book")
public class BookController {
    // controller调service层
    // 注解方式实现自动装配Bean
    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    // 示例方法
    @RequestMapping("/allBook")
    public String list(Model model) {
        List list = bookService.queryAllBook();
        model.addAttribute("list", list);
        return "allBook";
        // 重定向
        // return "redirect:/book/allBook";
    }
    // ...其它方法
}

5.2 视图页面

  • 在 jsp 目录下,创建对应的视图页面:allBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    书籍展示
    
    


<%--添加书籍查询功能--%>
<%--前端返回错误信息--%> ${error}
书籍编号 书籍名字 书籍数量 书籍详情 操作
${book.bookID} ${book.bookName} ${book.bookCounts} ${book.detail} 更改 | <%--RestFul风格--%> 删除

5.3 运行测试

  • 测试数据数据库:
CREATE DATABASE `ssmbuild`;
USE `ssmbuild`;
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
    `bookID` INT NOT NULL AUTO_INCREMENT COMMENT '书id',
    `bookName` VARCHAR(100) NOT NULL COMMENT '书名',
    `bookCounts` INT NOT NULL COMMENT '数量',
    `detail` VARCHAR(200) NOT NULL COMMENT '描述',
    KEY `bookID` (`bookID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;

INSERT INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES
(1,'Java',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');
  • 配置 Tomcat;

  • 注意:需要添加 lib 依赖,否则报错:

  • 运行测试:

你可能感兴趣的:(整合 SSM 基本配置文件)