ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-23 00:00:30  阅读:201  来源: 互联网

标签: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
来源: https://www.cnblogs.com/zengyu1234/p/16614212.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有