社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Spring Boot可以帮助我们快速搭建一个SSM框架环境,那么建立Spring boot项目之后怎样具体和SSM整合呢?
以下给大家介绍在SpringBoot项目中进行SSM整合的两种方式:
<dependencies>
<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.7</version>
</dependency>
<!--
spring-boot mybatis依赖:
请不要使用1.0.0版本,因为还不支持拦截器插件.
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!--简化bean代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
同时在该pom.xml文件中添加对xml文件的配置
<build>
<!--注意:配置xml资源属性,允许java包下的xml文件可编译-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
#数据源配置
spring.datasource.username=root
spring.datasource.password=syc
spring.datasource.url=jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis配置
mybatis.type-aliases-package=com.syc.boot.domain
mybatis.mapper-locations=classpath:com/syc/boot/domain/*.xml
#数据库脚本
CREATE TABLE student (id INTEGER(20) PRIMARY KEY AUTO_INCREMENT NOT NULL,NAME VARCHAR(30),sex VARCHAR(4))student;
#添加数据语句
INSERT INTO student (NAME,sex) VALUES('三胖','男');
INSERT INTO student (NAME,sex) VALUES('特没谱','女');
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;
}
StudentMapper接口类
package com.syc.boot.mapper;
import com.syc.boot.domain.Student;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface StudentMapper {
List<Student> getAll();
Student getById(@Param("id") int id);
}
StudentMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.syc.boot.mapper.StudentMapper">
<select id="getAll" resultType="com.syc.boot.domain.Student">
SELECT * FROM student
</select>
<select id="getById" resultType="com.syc.boot.domain.Student">
SELECT * FROM student
where id=#{id}
</select>
</mapper>
StudentService接口
package com.syc.boot.service;
import com.syc.boot.domain.Student;
import java.util.List;
public interface StudentService {
/*分页参数*/
List<Student> getAll(Integer pageNum,Integer pageSize);
Student get(Integer id);
}
StudentServiceImpl实现类
package com.syc.boot.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.syc.boot.domain.Student;
import com.syc.boot.mapper.StudentMapper;
import com.syc.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<Student> getAll(Integer pageNum,Integer pageSize) {
//在查询之前设置分页,利用Mybatis的分页插件实现分页
PageHelper.startPage(pageNum,pageSize);
List<Student> list = studentMapper.getAll();
PageInfo<Student> info=new PageInfo<>(list);
return info.getList();
}
@Override
public Student get(Integer id) {
return studentMapper.getById(id);
}
}
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<Student> 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);
}
}
package com.syc.boot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.syc.boot.mapper") //扫描Mybatis接口文件
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
注意:在应用程序入口类上配置@MapperScan("com.syc.boot.mapper"),扫描mapper接口文件所在包!
不分页查询全部

根据id查询某个对象

分页查询

以注解方式在SpringBoot中整合ssm时,可以把StudentMapper.xml文件删除掉,但是也得在pom.xml文件中允许Java文件的xml可编译,也就是仍然需要配置如下项:
<build>
<!--注意:配置xml资源属性,允许java包下的xml文件可编译-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
#数据源配置
spring.datasource.username=root
spring.datasource.password=syc
spring.datasource.url=jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis配置
mybatis.type-aliases-package=com.syc.boot.domain
package com.syc.boot.mapper;
import com.syc.boot.domain.Student;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface StudentMapper {
/*以注解的方式实现ssm整合*/
@Select("SELECT * FROM student")
List<Student> getAll();
@Select("SELECT * FROM student where id=#{id}")
Student getById(@Param("id") int id);
}

仍然可以实现SSM整合,以注解的方式实现明显更简单一些!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!