SpringBoot系列教程19--Web开发05之XML方式实现SSM整合

注意:

本系列教程案例继续在之前的基础上进行编写!

Spring Boot可以帮助我们快速搭建一个SSM框架环境,那么该怎么具体实现SSM整合呢?

以下给大家介绍在SpringBoot项目中进行SSM整合的两种方式:

  • 1️⃣. XML方式;
  • 2️⃣. 注解两种方式.

一. 在SpringBoot中以XML方式进行SSM整合

1. 创建一个新的module--demo08

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第1张图片

2.将项目改造成Spring Boot项目

在项目中添加父依赖以及编译插件。


    org.springframework.boot
    spring-boot-starter-parent
    2.2.5.RELEASE
     

    

   
      
         org.springframework.boot
         spring-boot-maven-plugin
        
    

3. 在pom文件中添加相关依赖


    
    
        org.springframework.boot
        spring-boot-starter-web
    

    
            org.springframework.boot
           spring-boot-starter-jdbc
    

    
        mysql
        mysql-connector-java
        5.1.46
    

    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        1.3.1
    

    
    
        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.2.3
    

    
    
        org.projectlombok
        lombok
    

4.在该pom.xml文件中添加识别xml文件的配置


    
    
        
            src/main/java
            
                **/*.xml
            
        
    

5. 配置application.properties

我们可以创建出一个application.properties文件,然后主要是设置数据源和mybaits属性。

#数据源配置
spring.datasource.username=root
spring.datasource.password=syc
spring.datasource.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#mybatis配置
mybatis.type-aliases-package=com.yyg.boot.domain
mybatis.mapper-locations=classpath:com/yyg/boot/domain/*.xml

6. 创建数据库以及student表

#数据库脚本
CREATE TABLE student (id INTEGER(20) PRIMARY KEY AUTO_INCREMENT NOT NULL,NAME VARCHAR(30),sex VARCHAR(4));

#添加数据语句
INSERT INTO student (NAME,sex) VALUES('三胖','男');
INSERT INTO student (NAME,sex) VALUES('特没谱','女');

7. 创建pojo实体对象

创建出“com.yyg.boot.domain”包,在该包下面创建一个Student实体类!

package com.syc.boot.domain;

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {

    private Integer id;

    private String name;

    private String sex;

}

8.编写StudentMapper接口类

创建一个“com.yyg.boot.mapper”包,在该包下面创建出StudentMapper接口。

package com.yyg.boot.mapper;

import com.yyg.boot.domain.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {
    
    List getAll();

    Student getById(@Param("id") int id);
}

9.编写对应的StudentMapper.xml文件

我们编写一个StudentMapper.xml文件,存放在“com.yyg.boot.mapper”包里面。

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第2张图片





    

    

10.编写service及其实现类

创建一个“com.yyg.boot.service”的包及其子包“impl”。

10.1 StudentService接口

在service包下面创建StudentService接口。

package com.yyg.boot.service;

import com.yyg.boot.domain.Student;

import java.util.List;

public interface StudentService {

    /**
     * 分页参数
     */
    List getAll(Integer pageNum, Integer pageSize);

    Student get(Integer id);

}

10.2 StudentServiceImpl实现类

在impl包下面,创建StudentServiceImpl实现类。

package com.yyg.boot.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yyg.boot.domain.Student;
import com.yyg.boot.mapper.StudentMapper;
import com.yyg.boot.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    @Override
    public List getAll(Integer pageNum, Integer pageSize) {
        //在查询之前设置分页,利用Mybatis的分页插件实现分页
        PageHelper.startPage(pageNum, pageSize);

        List list = studentMapper.getAll();
        PageInfo info = new PageInfo<>(list);
        return info.getList();
    }

    @Override
    public Student get(Integer id) {
        return studentMapper.getById(id);
    }

}

11.编写Controller类

创建出一个“com.yyg.boot.web”的包,在该包下面创建一个Controller类。

package com.syc.boot.web;
import com.syc.boot.domain.Student;
import com.syc.boot.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/stu")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping(value = "/find", method = RequestMethod.GET)
    public List find(@RequestParam(name = "pageNum",required = false,defaultValue = "1") Integer pageNum,@RequestParam(name="pageSize" ,required = false,defaultValue = "20") Integer pageSize) {
        return studentService.getAll(pageNum,pageSize);
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public Student get(@PathVariable(name = "id") Integer id) {
        return studentService.get(id);
    }
}

12. 编写程序入口

在“com.yyg.boot”包的根目录下,创建程序员入口类!

package com.yyg.boot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 以XML方式整合SSM.
 * MapperScan:扫描Mybatis接口文件
 */
@MapperScan("com.yyg.boot.mapper")
@SpringBootApplication
public class SSMApplication {

    public static void main(String[] args) {
        SpringApplication.run(SSMApplication.class, args);
    }

}

注意:在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

整个项目目录结构

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第3张图片

13.测试ssm整合及分页效果

启动项目,进行测试。

13.1 不分页查询全部

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第4张图片

13.2 根据id查询某个对象

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第5张图片

13.3 分页查询

SpringBoot系列教程19--Web开发05之XML方式实现SSM整合_第6张图片

你可能感兴趣的:(SpringBoot系列教程19--Web开发05之XML方式实现SSM整合)