springboot 整合 mybatis plus(简单实现)

引入mybatis plus的所需要的包

目录结构

在这里插入图片描述

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


        <!--导入jdbc依赖的包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <!-- 这是mybatis-plus依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- 这是mybatis-plus的代码自动生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- 这是模板引擎依赖 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
    </dependencies>

配置application.yml文件

server:
  port: 8081

#数据库的配置信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC
    username: root
    password: root

logging:
  level:
    # 根日志记录器输出warn级别
    root: warn
    # com.zzw.mapper下输出:trance级别日志
    com.zzw.mapper: trace
  # 日志格式
  pattern:
    # %p:日志级别, %m:内容, %n:换行
    console: '%p%m%n'

数据库结构

在这里插入图片描述

配置启动类(Application.java)

package com.zzw;

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

//用于查找mapper下的接口
@MapperScan("com.zzw.mapper")
@SpringBootApplication
public class Application {

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

}

实体类配置

Books.java

package com.zzw.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.util.Date;

/**
 * @author: zBei
 * @description:
 **/
@Data
public class Books {
	//用于声明主键,AUTO : AUTO(0, “数据库ID自增”)
    @TableId(type = IdType.AUTO)
    private Integer bookId;
    private String bookName;
    private String bookAuthor;
    private Date bookBirth;
}

mapper配置

BooksMapper.java

package com.zzw.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzw.entity.Books;

/**
 * @author: zBei
 * @description: 继承BaseMapper,该类提供数据库的操作方法
 **/
public interface BooksMapper extends BaseMapper<Books> {

}

测试环节

mybatisPlusTest.java

package com.zzw;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zzw.entity.Books;
import com.zzw.mapper.BooksMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Date;
import java.util.List;

/**
 * @author: zBei
 * @description:
 **/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class mybatisPlusTest {


    @Autowired
    @SuppressWarnings("all")
    private BooksMapper booksMapper;

    /**
     * @author: zBei
     * @description: selectList()用于查询所有数据 使用方法1
     **/
    @Test
    public void selectListTest1(){
        /**
         * 数据库是下划线的,在实体类中一定要讲下划线变成驼峰命名法,要不返回null
         * */
        List<Books> list = booksMapper.selectList(null);
        //使用断言(Assert)验证是否是4个数据
        //Assert.assertEquals(4,list.size());
        //使用Lambda表达式遍历集合
        //list.forEach(System.out::println);
    }

    /**
     * @author: zBei
     * @description: selectList()用于查询所有数据 使用方法2
     **/
    @Test
    public void selectListTest2(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        List<Books> list = booksMapper.selectList(qw);

        for (Books book : list) {
            System.out.println(book);
        }

    }

    /**
     * @author: zBei
     * @description: insert()插入数据 方法的使用
     **/
    @Test
    public void insertTest(){
        Books books = new Books();
        books.setBookName("梦幻花");
        books.setBookAuthor("东野圭吾");
        books.setBookBirth(new Date());
        int i = booksMapper.insert(books);
        System.out.println("影响个数:"+i);
    }

    /**
     * @author: zBei
     * @description:  updateById() 通过id修改数据
     **/
    @Test
    public void updateTest(){
        Books books = new Books();
        books.setBookId(5);
        books.setBookName("梦幻花2020");
        books.setBookAuthor("东野圭吾");
        books.setBookBirth(new Date());
        booksMapper.updateById(books);
    }


    /**
     * @author: zBei
     * @description: update() 通过自定义条件修改数据
     **/
    @Test
    public void updateTest2(){
        Books books = new Books();
        books.setBookAuthor("更新东野圭吾");
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","梦幻花2020");

        int updateRows = booksMapper.update(books, qw);
        System.out.println("影响个数:"+updateRows);
    }

    /**
     * @author: zBei
     * @description:  deleteById()通过id删除数据
     **/
    @Test
    public void deleteTest1(){
        booksMapper.deleteById(5);
    }

    /**
     * @author: zBei
     * @description:  delete()通过自定义条件删除数据
     **/
    @Test
    public void deleteTest2(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","梦幻花");
        booksMapper.delete(qw);
    }
    
	/**
     * @author: zBei
     * @description:  selectById() 通过id查询数据
     **/
    @Test
    public void selectByIdTest(){
        Books books = booksMapper.selectById(1);
        System.out.println(books);
    }

    /**
     * @author: zBei
     * @description: selectMaps() 根据自定义条件查询数据
     **/
    @Test
    public void selectByMap(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","我们仨");
        List<Map<String, Object>> maps = booksMapper.selectMaps(qw);
        System.out.println(maps);
    }

    /**
     * @author: zBei
     * @description: selectCount() 用于查询总数
     **/
    @Test
    public void selectCount(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        Integer count = booksMapper.selectCount(qw);
        System.out.println("总数为:"+count);
    }
	/**
     * @author: zBei
     * @description: selectList() 用于进行模糊查询
     **/
    @Test
    public void selectLike(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.like("book_author","东");
        List<Books> list = booksMapper.selectList(qw);
        System.out.println(list);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值