本系列教程案例继续在之前的基础上进行编写!
Spring Boot可以帮助我们快速搭建一个SSM框架环境,那么该怎么具体实现SSM整合呢?
以下给大家介绍在SpringBoot项目中进行SSM整合的两种方式:
在项目中添加父依赖以及编译插件。
org.springframework.boot
spring-boot-starter-parent
2.2.5.RELEASE
org.springframework.boot
spring-boot-maven-plugin
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
src/main/java
**/*.xml
我们可以创建出一个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
#数据库脚本
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('特没谱','女');
创建出“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;
}
创建一个“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);
}
我们编写一个StudentMapper.xml文件,存放在“com.yyg.boot.mapper”包里面。
创建一个“com.yyg.boot.service”的包及其子包“impl”。
在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);
}
在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);
}
}
创建出一个“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);
}
}
在“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);
}
}
启动项目,进行测试。