整合微服务Mybatis plus快速上手增删改查

整合微服务Mybatis plus

Mybatis plus 是Mybatis的升级版,只对Mybatis升级不改变源码,Mybatis能用的他都可以使用,而Mybatis plus最强大之处就是它封装了单表查询。能够使简单的查询更加简单快捷。

1.使用Mybatis plus

1.导入jar包

<dependencies>
    <dependency>
        <!--mybatis-plus 支持-->
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.1.2</version>
    </dependency>
    <!--mysql 驱动包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
</dependencies>

2.配置mysql的配置

spring:
    datasource:
      url: jdbc:mysql://106.14.171.136:3306/chongba_schedule?serverTimezone=GMT%2B8
      driver-class-name: com.mysql.jdbc.Driver
      username: root
      password: root

3.创建对应MySQL表的实体类

1.@TableName:表示对应的数据库的表。

2.@TableId(type = IdType.ID_WORKER):

Type值:

​ AUTO 数据库ID自增

​ INPUT 用户输入ID

​ ID_WORKER 全局唯一ID,Long类型的主键 雪花算法,推荐使用

​ ID_WORKER_STR 字符串全局唯一ID

​ UUID 全局唯一ID,UUID类型的主键

​ NONE 该类型为未设置主键类型AUTO 数据库ID自增

​ INPUT 用户输入ID

​ ID_WORKER 全局唯一ID,Long类型的主键 雪花算法,推荐使用

​ ID_WORKER_STR 字符串全局唯一ID

​ UUID 全局唯一ID,UUID类型的主键

​ NONE 该类型为未设置主键类型

**3.@TableField:**是绑定表中的列:

​ 如:表中的列为:task_id,

​ 就可以省去@TableFiled(“绑定的值”)

​ 如果不是列为以上面这种格式的话就要在@TableFiled()内添加对应的列名。

package com.chongba.schedule.pojo;

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.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

@Data
@ToString
@NoArgsConstructor

@TableName("taskinfo")
public class TaskInfoEntity implements Serializable {

    private static final long serialVersionUID = -622370561977780508L;
    /**
     * `task_id` bigint(20) NOT NULL COMMENT '任务id',
     * `execute_time` datetime(3) NOT NULL COMMENT '执行时间',
     * `parameters` longblob COMMENT '参数',
     * `priority` int(11) NOT NULL COMMENT '优先级',
     * `task_type` int(11) NOT NULL COMMENT '任务类型',
     */
    @TableId(type = IdType.ID_WORKER)
    private Long taskId; // 任务id

    @TableField
    private Date executeTime; // 执行时间

    @TableField
    private byte[] parameters; // 参数

    @TableField
    private Integer priority; // 优先级

    @TableField
    private Integer taskType; // 任务类型
}

4 定义Mapper接口类

package com.chongba.schedule.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chongba.schedule.pojo.TaskInfoEntity;
import org.apache.ibatis.annotations.Select;

public interface TaskInfoMapper extends BaseMapper<TaskInfoEntity> {

    @Select("select * from taskinfo where priority = #{priority}")
    TaskInfoEntity findByPriority(Integer priority);
}

  1. 必须继承BaseMapper<> 泛型里面填Pojo的实体类
  2. 由于Mybatis plus是没有改变Mybatis的源码的,只是强,所以也是可以用@Select注解和Xml的形式对数据库进行CRUD的。

5.启动类上的注解

​ 由于是SpringBoot集成Mybatis plus所以必须在启动类上添加**@MapperScan注解,注解内容是你的Mapper接口的包的全路径名。例如:@MapperScan(“com.chongba.schedule.mapper”)**

这样就可以对单边进行快速的CRUD了。

@Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }
@Bean
public PaginationInterceptor paginationInterceptor(){
    return new PaginationInterceptor();
}

在启动类中加入这两个@Bean,第一个是实现乐观锁的,当你的实体类上有属性绑定@Version这个注解时就相当于是加了乐观锁,所以必须加上第一个注解后就会实现乐观锁。

@Version
public int version

第二个@Bean是实现分页查询时所需要的注解

6.Mybatis plus CRUD快速入门

1.单表添加

方法:insert()

@Autowired
TaskInfoMapper taskInfoMapper;
@Test
public void insert(){
    TaskInfoEntity taskInfoEntity = new TaskInfoEntity();
        taskInfoEntity.setExecuteTime(new Date());
        taskInfoEntity.setParameters("保存".getBytes());
        taskInfoEntity.setPriority(22);
        taskInfoEntity.setTaskType(1002);
        taskInfoMapper.insert(taskInfoEntity);
}
2.单表删除
 		//根据id删除数据
        taskInfoMapper.deleteById(1);
        //根据map中的信息删除表中的信息
        Map<String,Object> map = new HashMap<>();
        map.put("taskType",1002);
        map.put("taskId",1);
        taskInfoMapper.deleteByMap(map);
        taskInfoMapper.delete(new QueryWrapper<TaskInfoEntity>().eq("g",1));
        // 批量根据Id删除
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        taskInfoMapper.deleteBatchIds(list);
3.单表修改
 	//填写要修改的表的属性
    taskInfoMapper.updateById(taskInfoEntity);

4.单表查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IgzjbU5N-1588862032647)(C:\Users\臭屁周\AppData\Roaming\Typora\typora-user-images\1588861915834.png)]

d(“3”);
taskInfoMapper.deleteBatchIds(list);


#### 3.单表修改

```java
 	//填写要修改的表的属性
    taskInfoMapper.updateById(taskInfoEntity);

4.单表查询

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值