栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot 整合MyBatis、PageHelper

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot 整合MyBatis、PageHelper

一、新建项目 1.1 配置项目相关信息

1.2 配置pom.xml


    4.0.0

    com.cyl
    springboot-02
    1.0-SNAPSHOT

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.4.7
    

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

        
            mysql
            mysql-connector-java
        
        
        
            org.projectlombok
            lombok
            provided
        
    

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

1.3 配置文件中 配置数据源(///中间省略了localhost:3306)

srcmainresourcesapplication.properties

server.port=8000

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 三个斜杆表示省略了部分,同:jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC
spring.datasource.url=jdbc:mysql:///mydb?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
1.4 启动类中配置控制层
package com.cyl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;


@SpringBootApplication
public class BootApp {

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

    @RestController
    public class TestController{

        @Autowired
        DataSource dataSource;

        
        @GetMapping("/test")
        public Object test(){
            return dataSource.getClass().getName();
        }
    }
}

二、Spring Boot中使用默认数据源
  1. 数据源作用
    配置数据库连接参数
    可以提前创建数据库连接,减少了创建连接的开销
  2. Spring Boot 1.x 默认数据源是tomcat-jdbc
  3. Spring Boot 2.x 默认数据源是 HikariCP,又叫做光
  4. Spring Boot整合默认数据源的Maven依赖: spring-boot-starter-jdbc
  5. 虽然能自动创建数据源,但是数据源连接参数需要用户提供
  6. 运行项目,输入正确url值
三、整合MyBatis
  1. Spring官方没有提供与MyBatis整合的starter依赖
  2. MyBatis官方提供了一个starter依赖整合Spring Boot的包
  3. Maven依赖
	
		org.mybatis.spring.boot
		mybatis-spring-boot-starter
		2.1.1
	
  1. 最小配置

在application.properties中配置mapperLocations

	mybatis.mapper-locations=classpath:mapper/*.xml

在启动类上使用@MapperScan注解

四、 整合PageHelper
  1. Spring官方没有提供与PageHelper整合的starter依赖
  2. PageHelper官方提供了一个starter依赖整合Spring Boot
  3. Maven依赖
	
		com.github.pagehelper
		pagehelper-spring-boot-starter
		1.2.13
	
五、开始整合 5.1 导入MyBatis和PageHelper两个整合依赖 5.2 MyBatia相关配置

srcmainresourcesapplication.properties

	mybatis.mapper-locations=classpath:mapper/*.xml

srcmainjavacometoakBootApp.java

	
	@MapperScan(basePackages = "com.cyl.mapper")
5.3 编写代码
  1. 实体类
    srcmainjavacometoakentityUser.java
package com.cyl.entity;

import lombok.Data;

@Data
public class User {

    private Integer id;

    private String name;

    private String password;

    private String email;

    private String hobbies;

    private String createTime;
}
  1. mapper接口
    srcmainjavacometoakmapperUserMapper.java
package com.cyl.mapper;

import com.cyl.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {

    List getUser(@Param("name") String name);
}

  1. mapper映射文件
    srcmainresourcesmapperUserMapper.xml




    
        select
            id,
            name,
            email,
            age,
            hobbies,
            create_time as createTime
        from tb_user
        
            
                
                
                AND name like concat(#{name},'%')
            
        
    


  1. 分页 业务对象VO
package com.cyl.vo;

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

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageVO {
    private Integer pageNumber;

    private Integer pageSize;

    private List rows;

    private Long total;
}
  1. 控制层
    srcmainjavacometoakcontrollerUserController.java
package com.etoak.controller;

import com.etoak.entity.User;
import com.etoak.mapper.UserMapper;
import com.etoak.vo.PageVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserMapper userMapper;

    @GetMapping("/list")
    public PageVO getUser(@RequestParam(required = false,defaultValue = "1") int pageNumber,
                                @RequestParam(required = false,defaultValue = "10") int pageSize,
                                String name){
        //设置分页条件
        PageHelper.startPage(pageNumber, pageSize);
        //查询用户列表
        List userList = userMapper.getUser(name);
        //插件PageInfo
        PageInfo pageInfo = new PageInfo<>(userList);
        //创建PageVO
        PageVO pageVO = new PageVO<>(pageInfo.getPageNum(),
                                           pageInfo.getSize(),
                                           userList,
                                           pageInfo.getTotal());
        return pageVO;
    }

}
5.4 启动项目,输入正确url

此处我安装了在谷歌浏览器中安装了可以 json 数据化的插件,想了解请戳这里

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号