spring boot 导包

配置文件的后缀 改成 yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/****?useSSL=false&serverTimezone=Asia/Shanghai
    username: *****
    password: ******

#myBatis
#需要配置别名的实体类的包

#mybatis-plu:
mybatis-plus:
  type-aliases-package: com.lanou.spring_boot_mybatis.entity
  #mapper文件的位置
  mapper-locations: classpath:mapper/*Mapper.xml
#  打印debug日志
debug: true

在pom.xml 中 导入 mybatis-plus

 <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.1</version>
        </dependency>

创建实体类 Emp

package com.lanou.spring_boot_mybatis.entity;

import lombok.Data;

import java.util.Date;

@Data
public class Emp {

    private Long uuid;
    private String username;
    private Date birthday;
    private String email;
}

*如果要在spring boot 中写XML文件就 向下面这样做

创建 EmpMappers 继承 MyBatis-plus 的BaseMappers<> 接口

package com.lanou.spring_boot_mybatis.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanou.spring_boot_mybatis.entity.Emp;

import java.util.List;

//BaseMapper<> 属于baomidou.mybatisplus sql语句可以不用自己来手写
public interface EmpMapper  extends BaseMapper<Emp> {
    List<Emp> findAll();
}

在resources 下创建mapper 包 里面写 xml 文件实现sql语句

<?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.lanou.spring_boot_mybatis.mapper.EmpMapper">
    <select id="findAll" resultType="emp">
        select uuid, username,birthday,email from emp
    </select>
</mapper>

在 创建项目时自动生成的实体类中写注解使项目能扫描mapper 接口下的所有包

package com.lanou.spring_boot_mybatis;

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

@SpringBootApplication
//扫描mapper接口所在的包
@MapperScan("com.lanou.spring_boot_mybatis.mapper")
public class SpringBootMybatisApplication {

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

}

*使用MyBatis-pius 写的SQL语句( 他写的SQL语句只是单表联查,没有多表联查)

在测试类中测试SQL语句

注入 EmpMapper
  @Resource
    private EmpMapper empMapper;

    @Test
    public void contextLoads() {
//查询所有(使用的是方法MyBatis-pius 中的)
        List<Emp> all = this.empMapper.selectList(null);
        all.forEach(emp -> log.info("{}", emp));

    }

创建MyBatisConfig实体类 来配置 关于MyBatis 的Bean

package com.lanou.spring_boot_mybatis.config;


import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//在springboot中,习惯使用java的形式进行配置
//在以前ssm项目中也可使用java的形式进行配置

//SSM中也可以集成Mybatis-plus
@Configuration
public class MyBatisConfig {

//    Mybatis-plus 中使用分页所做的拦截
    @Bean
    public PaginationInterceptor pagintaionInterceptor(){
        return  new PaginationInterceptor();
    }
}

使用MyBatis-pius 中分页方法


//    实现分页
    @Test
    public void findByPage() {
        Page<Emp> page = new Page<>(2, 3);
//        第一个参数写对象,
//        第二个参数写空的QueryWrapper 对象 或null
//        null:查询所有
//        QueryWrapper 对象 查询分页
        IPage<Emp> empIPage = this.empMapper.selectPage(page, new QueryWrapper<>());
        log.info("分页数据总条数:{},集合{}", empIPage.getTotal(), empIPage.getRecords());
    }


这只是其中一小部分,上一篇也有关于MyBatis 的小部分

posted on 2019-06-30 17:38  脑抽不要停  阅读(162)  评论(0编辑  收藏  举报