首页 > 其他分享 >springboot整合mybatis-plus实现增删改查功能

springboot整合mybatis-plus实现增删改查功能

时间:2022-08-22 23:55:40浏览次数:74  
标签:mapper springboot boot 改查 plus org Employee import com

一、创建数据库

字段名称

中文

类型

长度

主键

自增

默认值

备注

Id

 

Int

 

Y

 

 

 

emp_name

员工姓名

varchar

 

 

 

 

 

login_name

登录帐号

Varchar

 

 

 

 

 

login_password

登录密码

 

 

 

 

 

 

age

年龄

Int

 

 

 

 

 

gender

性别

Varchar

 

 

 

 

 

addr

地址

varchar

 

 

 

 

 

dept_name

部门名称

Varchar

 

 

 

 

 

status

状态

tinyint

 

 

 

0

0工作

1休息

2离职

默认是工作状态

deleted

是否删除

tinyint

1

 

 

0

 

 

二、使用springboot整合mybatis-plus向上表中插入数据

三、查询上表中的所有数据,不显示员工登录密码

四、将所有部门为市场部的员工的部门名称,修改为销售部

五、将所有吉林市和长春市的员工,年龄不在30到50之前的,状态全部修改为休息

六、将所有60岁以上的男性员工全部从数据表中删除

 

新建一个Spring Initializr的Moduel

 

添加Lombok,Spring Web,MySQL Driver依赖

 

 

配置好pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xzit</groupId>
    <artifactId>day5_job</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>day5_job</name>
    <description>day5_job</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <!--spring web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.xzit.Day5JobApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

 

配置一个application.yml文件

 其中logic-delete-field:deleted 就是配置数据库逻辑删除的字段是deleted

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8
    username: root
    password: zengyu1234
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    #配置数据库逻辑删除的字段
    db-config:
      logic-delete-field: deleted

 

在主类中配置一个mapper扫描器的注解,写上mapper的路径com.xzit.mapper

package com.xzit;

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

@SpringBootApplication
@MapperScan(basePackages = {"com.xzit.mapper"})
public class Day5JobApplication {

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

}

 

按照数据库表字段新建实体类Employee

package com.xzit.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName("employee")
public class Employee {
    /*声明这个字段为自增长字段,插入值时会插入自增长数值*/
    @TableId(type = IdType.AUTO)
    private int id;
    private String emp_name;
    private String login_name;
    /*声明该密码字段查询不返回值*/
    @TableField(select = false)
    private String login_password;
    private int age;
    private String gender;
    private String addr;
    private String dept_name;
    private int status;
    private int deleted;
}

 

在测试类中实现新增方法

package com.xzit;

import com.xzit.entity.Employee;
import com.xzit.mapper.EmployeeMapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@SpringBootTest
class Day5JobApplicationTests {
    @Resource
    private EmployeeMapper mapper;

    /*二、使用springboot整合mybatis-plus向上表中插入数据*/
    @Test
    void save() {
        List<Employee> list = new ArrayList<>();
        Employee e1 = new Employee(0,"伊万","ivan","1234.abcd",26,"男","澳大利亚墨尔本","开发部",0,0);
        Employee e2 = new Employee(0,"丁老师","evan","1234.abcd",64,"男","吉林省长春市","市场部",0,0);
        Employee e3 = new Employee(0,"陈九歌","avan","1234.abcd",26,"女","吉林省吉林市","市场部",0,0);
        Employee e4 = new Employee(0,"孔乙己","bvan","1234.abcd",35,"男","吉林省长春市","市场部",0,0);

        list.add(e1);
        list.add(e2);
        list.add(e3);
        list.add(e4);

        for (Employee e:list){
            mapper.insert(e);
        }
    }

}

执行效果

 

 

 

 

在测试类中实现查询方法

/*三、查询上表中的所有数据,不显示员工登录密码*/
    @Test
    void selectList(){
        List<Employee> list = mapper.selectList(null);//查询所有数据时不带查询参数
        list.forEach(System.out::println);
    }

执行效果

 

 

实现修改方法

/*四、将所有部门为市场部的员工的部门名称,修改为销售部*/
    @Test
    void updateByDept(){
        //声明一个Lambda员工类,使用该类可以避免字段值打错
        LambdaUpdateWrapper<Employee> wrapper= new LambdaUpdateWrapper<>();
        wrapper.set(Employee::getDept_name,"销售部")
                .like(Employee::getDept_name,"市场部");
        mapper.update(null,wrapper);
    }

执行效果

 

 

 

 

实现按年龄区间查询的功能,要上苞米豆上查询一下mybatis plus条件构造器的使用方法,使用not between这个方法实现

 

 

实现按条件修改方法

/*五、将所有吉林市和长春市的员工,年龄不在30到50之前的,状态全部修改为休息*/
    @Test
    void updateByAge(){
        Employee employee=new Employee();
        employee.setStatus(1);//0工作 1休息 2离职 默认是工作状态
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.notBetween("age",30,50);
        mapper.update(employee,wrapper);
    }

执行效果

 

 

 

 

实现删除方法

    /*六、将所有60岁以上的男性员工全部从数据表中删除*/
    @Test
    void deleteByAge(){
        QueryWrapper<Employee> wrapper = new QueryWrapper<>();
        wrapper.ge("age",60);
        mapper.delete(wrapper);
    }

执行效果

 

 

 

标签:mapper,springboot,boot,改查,plus,org,Employee,import,com
From: https://www.cnblogs.com/zengyu1234/p/16614212.html

相关文章

  • SpringBoot-自动配置
    1.什么是自动配置?SpringBoot自动配置,英文名是Auto-Configuration:    是指基础我们引入的依赖jar包,对SpringBoot应用进行自动配置为SpringBoot框架的“开箱......
  • MybatisPlus系列---【时间查询】
    1.问题描述项目中经常遇到这样的问题,有个查询条件是日期,或者日期范围,但是数据库一般存的是日期时间,想要查询,肯定要做格式化后再比较。不使用MybatisPlus的时候,一般都......
  • springboot使用@Async实现异步调用
    异步与同步同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行......
  • 3.springboot和springcloud alibaba版本问题
    启动项目报错Causedby:java.lang.ClassNotFoundException:...boot.context.properties.ConfigurationPropertiesBean 解决办法:我的springboot用的<parent>......
  • java springboot 初体验 (七)对接链路追踪
    上一篇javaspringboot初体验(六)添加统一的入参出参打印日志(使用切面)https://www.cnblogs.com/zwjvzwj/p/16612094.htmlMDC介绍MDC(MappedDiagnosticContext,映射......
  • c++ 跑酷小游戏之用户体验plus
    #undefUNICODE#undef_UNICODE#include<iostream>#include<iomanip>#include<string>#include<cstdlib>#include<ctime>#include<windows.h>#include<conio.h>#inc......
  • SpringBoot中的事务
    [转]https://www.cnblogs.com/l-liu/p/16169399.html 一、说明介绍①使用事务,我们只需要在需要事务的类或方法上使用@Transactional注解即可,当注解在类上的时候意味着此......
  • java springboot 初体验 (六)添加统一的入参出参打印日志(使用切面)
    上一篇javaspringboot初体验(五)对接apollohttps://www.cnblogs.com/zwjvzwj/p/16602858.htmlpom文件中添加依赖<!--切面--><dependency>......
  • AtCoder-arc146_b Plus and AND
    PlusandAND贪心从高位开始判断,判断每个数字当前位如果置为\(1\)需要多少步,如果当前位原本就是\(1\),则不消耗,如果原本不是,则消耗低位后,需要将低位全部置\(0\)然后......
  • springboot+license
    原文:https://www.zifangsky.cn/1277.htmlLicense,即版权许可证,一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同,一般可以分为以下两种情况讨论:应用......