Mybatis-Plus的框架使用

2022-07-09 13:16:30

1、工程创建

1.1初始化工程

注意:写name 和 Group

name:工程名 Group:是项目的包的名字

选择 Lombok依赖

注意: 环境是springboot 2.7.0

2、application.yml文件的配置

spring:
  application:
    name:Mybatis_Plus-test
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mp?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    driver-class-name:com.mysql.cj.jdbc.Driver
  web:
    resources:static-locations:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
mybatis-plus:
  global-config:
    db-config:
      #设置实体类的表的统一前缀
      table-prefix: tbl_
      #设置统一的主键生成策略
      id-type:    auto
  configuration:
    log-impl:org.apache.ibatis.logging.stdout.StdOutImpl

3、导入pom文件的依赖:

建议直接覆盖所有

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--导入配置文件处理器,配置文件进行绑定就会有提示--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>

4、创建数据库和表

-- 创建库
CREATE DATABASE 数据库名;-- 使用库
USE 数据库名;-- 创建表
CREATE TABLE 数据表名(
 idINT(11) PRIMARYKEY AUTO_INCREMENT,   主键设置,自动增长
 last_nameVARCHAR(50),
 emailVARCHAR(50),
 genderCHAR(1),
 ageint);           表名           字段名                             值
INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Tom','tom@atguigu.com',1,22);
INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Jerry','jerry@atguigu.com',0,25);
INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Black','black@atguigu.com',1,30);
INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('White','white@atguigu.com',0,35);

5、创建包entity创建实体类,加入注解

注意:加入注解:@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@TableName(“tbl_employee”)

packagecom.bjpowernode.mybatis_plustest.pojo;importcom.baomidou.mybatisplus.annotation.*;importlombok.AllArgsConstructor;importlombok.Data;importlombok.EqualsAndHashCode;importlombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@TableName("tbl_employee")publicclassEmployee{@TableId(type=IdType.AUTO)privateInteger  id;@TableField(value="last_name")privateString lastName1;privateString email;privateInteger gender;privateInteger age;//逻辑删除的方法 就是数据库中的数据不删除.但是查询出的数据没有了。//当数据库中的字段的值为1的时候,表示逻辑删除成功。//逻辑删除后的数据不能被修改。//逻辑删除必须使用创建集合的办法  List<Long> list = Arrays.asList(220L);@TableLogicprivateInteger is_deleted;}

6、创建dao层,创建mapper包,创建对应实体类的接口,创建对象

注意:继承BaseMapper接口,并且BaseMapper接口必须指定实体类的类型,mapper文件的名字为s实体类m名+mapper

packagecom.bjpowernode.mybatis_plustest.mapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importorg.apache.ibatis.annotations.Mapper;@Mapper                                             (指定实体类的类型)publicinterfaceEmployeemapperextendsBaseMapper<Employee>{}

6.1在启动类上加入扫描dao层包的注解

注意:copypath选最后一个

packagecom.bjpowernode.mybatis_plustest;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.bjpowernode.mybatis_plustest.mapper")publicclassMybatisPlusTestApplication{publicstaticvoidmain(String[] args){SpringApplication.run(MybatisPlusTestApplication.class, args);}}

7、创建测试类

注意:测试类在src/test路径下,创建时加@SpringBootTest依赖就成了测试类

packagecom.bjpowernode.mybatis_plustest;importcom.bjpowernode.mybatis_plustest.mapper.Employeemapper;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.Arrays;importjava.util.HashMap;importjava.util.List;importjava.util.Map;@SpringBootTestclassMybatisPlusTestApplicationTests{@AutowiredprivateEmployeemapper employeemapper;@TestvoidcontextLoads(){List<Employee> list= employeemapper.selectList(null);

        list.forEach(System.out::println);}@TestpublicvoidtestInsert(){Employee user=newEmployee();
      user.setAge(24);
      user.setLastName("最后");
      user.setEmail("1271839347@qq.com");
      user.setGender(0);int insert= employeemapper.insert(user);System.out.println("添加的行数是:"+insert);System.out.println("id"+user.getId());}@TestpublicvoidtestDelete(){//删除的方法//          int i = employeemapper.deleteById(8);//          System.out.println("返回的值是"+i);////          //删除,使用Map集合做条件过滤//          Map<String,Object> map=new HashMap<>();//          map.put("last_name","white");//          map.put("age",35);//          int result = employeemapper.deleteByMap(map);//          System.out.println("result:"+result);(使数据转换为集合的方法)
                             注意:集合中的数据对应数据库中的id字段,但是要加longList<Long> list=Arrays.asList(1L,2L,3L);int result2= employeemapper.deleteBatchIds(list);System.out.println("result="+result2);}}

7、增强功能(自定义功能)

7.1 在resources目录下创建mapper包,创建mybatis-mapper文件,创建后默认是接口名.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.bjpowernode.mybatis_plustest.mapper.Employeemapper">
      
      select对应查询方法            对应接口中的方法名              接口中方法的返回值<select id="selectMapByIdPang" resultType="map">
                         
      select last_name,email,gender,age  from tbl_employee where id=#{id}</select></mapper>

7.1dao层中添加方法

packagecom.bjpowernode.mybatis_plustest.mapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importjdk.nashorn.internal.ir.CallNode;importorg.apache.ibatis.annotations.Mapper;importjava.util.Map;@MapperpublicinterfaceEmployeemapperextendsBaseMapper<Employee>{//接口中写方法Map<String,Object>selectMapByIdPang(Integer id);}

8、service层的编写

8.1编写对应的service包,service中的类的名字是实体类的名+service

service层中继承IService方法泛型是对应的实体类

packagecom.bjpowernode.mybatis_plustest.service;importcom.baomidou.mybatisplus.extension.service.IService;importcom.bjpowernode.mybatis_plustest.pojo.Employee;//继承IService方法publicinterfaceEmployeeServiceextendsIService<Employee>{}

8.2

创建对应的实现类实现类名是实体类+Service+Impl

8.3

实现自己创建的service,并且继承Mybatis-Plus框架的方法ServiceImpl<mapper文件, 实体类>

packagecom.bjpowernode.mybatis_plustest.service.impl;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importcom.bjpowernode.mybatis_plustest.mapper.Employeemapper;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importcom.bjpowernode.mybatis_plustest.service.EmployeeService;//ServiceImplMybatis-Plus中的方法publicclassEmployeeServiceImplextendsServiceImpl<Employeemapper,Employee>implementsEmployeeService{}

9、serveice层方法的测试

9.1、测试查询数据总数和添加方法的测试

在测试中调用service层,加入@SpringBootTest注解

packagecom.bjpowernode.mybatis_plustest;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importcom.bjpowernode.mybatis_plustest.service.EmployeeService;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.ArrayList;importjava.util.List;@SpringBootTestpublicclassMyBatisPlusApplicationTests{@AutowiredprivateEmployeeService employeeService;@TestpublicvoidtestGetCount(){//查询数据库中总数据数的方法。int count= employeeService.count();System.out.println("总记录数是:"+count);}@Test//测试批量添加的方法publicvoidtestInsertMore(){//创建集合List<Employee> list=newArrayList<>();//利用for循环批量创建对象for(int i=1;i<=10;i++){Employee employee=newEmployee();
          employee.setLastName("盘网上搜"+i);
          employee.setAge(20+i);//employee.setEmail("@121212");//employee.setGender(0);//把对象放入集合
          list.add(employee);}//调用Mybatis_Puls中的方法插入boolean b= employeeService.saveBatch(list);System.out.println(b);}}

9.2增改删查的测试

packagecom.bjpowernode.mybatis_plustest;importcom.bjpowernode.mybatis_plustest.mapper.Employeemapper;importcom.bjpowernode.mybatis_plustest.pojo.Employee;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.Arrays;importjava.util.HashMap;importjava.util.List;importjava.util.Map;@SpringBootTestclassMybatisPlusTestApplicationTests{@AutowiredprivateEmployeemapper employeemapper;@TestvoidcontextLoads(){//查询的方法(全部查询)List<Employee> list= employeemapper.selectList(null);

        list.forEach(System.out::printl
  • 作者:pws123456yyy
  • 原文链接:https://blog.csdn.net/pws123456yyy/article/details/125165324
    更新时间:2022-07-09 13:16:30