mybatis 使用for update,对数据进行行级锁定

本文介绍了在MyBatis中如何利用`for update`实现行级锁定,详细讲解了从数据库表设计到DAO、接口、Service层的代码实现。同时提到了需在查询时加上`for update`并配合事务使用。文章还提供了相关教程链接和作者的GitHub资源,供读者深入学习和交流。
摘要由CSDN通过智能技术生成

for upate使用场景在Spring Date JPA之 for update中已经介绍过了,想要了解,可以看博客:Spring Data JPA 之 for update_兮川的博客-CSDN博客,在这边会介绍一下在mybatis中的使用场景。使用了mybatis-plus,前面有些过基础教程,地址:springboot整合mybatis-plus,以及mybatis-plus入门使用_兮川的博客-CSDN博客

与Spring Date JPA中使用行级锁一样,都需要加上事务,并在查询的时候加上for update。直接上代码:

数据库表:

create table t_pub_student(
id int PRIMARY key auto_increment,
code VARCHAR(50) COMMENT '学生CODE',
name VARCHAR(50) COMMENT '学生名字'
)

create table t_course_detail(
id int PRIMARY key auto_increment,
name VARCHAR(50) COMMENT '课程名称',
teacher_name VARCHAR(50) COMMENT '教师名字',
elective_total int COMMENT '可选总数',
elective_num int COMMENT '已选数量'
)

create table t_course_detail(
id int PRIMARY key auto_increment,
student_code varchar(50) COMMENT '学生code',
course_id int COMMENT '课程ID'
)

代码目录结构:

定义实体:

package course.entity;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import javax.persistence.*;

/**
 * Created by Xichuan on 2018-10-31.
 */
@TableName("t_pub_student")
public class Student {

    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    @Column(name = "code")
    private String code;

    @Column(name = "name")
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值