您当前的位置: 首页 >  spring

一一哥Sun

暂无认证

  • 4浏览

    0关注

    622博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Day06_08_SpringBoot教程之实现SSM整合

一一哥Sun 发布时间:2019-05-31 16:47:05 ,浏览量:4

SpringBoot中实现SSM整合

Spring Boot可以帮助我们快速搭建一个SSM框架环境,那么建立Spring boot项目之后怎样具体和SSM整合呢?

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

  • 1️⃣. XML方式;
  • 2️⃣. 注解两种方式.
一. 在SpringBoot中以XML方式进行SSM整合 1. 创建一个新的module--boot_ssm

2. 在pom文件中添加相关依赖
 
    
    
        org.springframework.boot
        spring-boot-starter-web
    

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

    
        mysql
        mysql-connector-java
        5.0.7
    

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

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

    
    
        org.projectlombok
        lombok
    

同时在该pom.xml文件中添加对xml文件的配置


    
    
        
            src/main/java
            
                **/*.xml
            
        
    

3. 配置application.yml
#数据源配置
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
4. 创建数据库以及student表
#数据库脚本
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('特没谱','女');
5. 创建pojo实体对象
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;

}
6. 编写mapper接口及对应的xml文件

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 getAll();

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

}

StudentMapper.xml文件





    
        SELECT * FROM student
    

    
        SELECT * FROM student
        where id=#{id}
    


7. 编写service及其实现类

StudentService接口

package com.syc.boot.service;
import com.syc.boot.domain.Student;
import java.util.List;

public interface StudentService {

    /*分页参数*/
    List 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 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);
    }
}
8. 编写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);
    }
}
9. 编写程序入口
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接口文件所在包! 

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

不分页查询全部

根据id查询某个对象

分页查询

二. 在SpringBoot中以注解方式进行SSM整合 1. 在StudentMapper类中添加注解

以注解方式在SpringBoot中整合ssm时,可以把StudentMapper.xml文件删除掉,但是也得在pom.xml文件中允许Java文件的xml可编译,也就是仍然需要配置如下项:


    
    
        
            src/main/java
            
                **/*.xml
            
        
    

2. 修改application.properties文件
#数据源配置
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
3. 编写StudentMapper接口方法
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 getAll();

    @Select("SELECT * FROM student where id=#{id}")
    Student getById(@Param("id") int id);

}
4. 其他service,controller及入口类都与第一部分一样. 5. 验证结果

仍然可以实现SSM整合,以注解的方式实现明显更简单一些!

关注
打赏
1665624836
查看更多评论
立即登录/注册

微信扫码登录

0.0376s