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;
}