jdbc mysql 锁_MySQL-锁

锁的概念:

任何关系型数据库里都会有锁的机制,锁是基于事务的一种机制,锁主要是用来保护数据的安全,不被破坏,因为在数据量大并且高并发的情况下,就容易出现多个用户同时对同一个数据操作的情况,在这种情况下没有锁来保护数据的话,就会导致数据的混乱,数据就会遭到破坏。

所以锁的作用就是当一个用户操作某些数据的时候,可以锁住这些数据,其他用户就不能对这些数据进行操作了。数据库锁的概念和编程中线程的概念是差不多的,都是让用户能够排队地去操作数据。

在数据库里锁分两大类,行级锁和表级锁。这里主要是介绍行级锁里的两种锁:排他锁和共享锁。

在数据库中使用锁:

排他锁:

排他锁,顾名思义就是拒绝其他用户操作的锁,A用户对某行数据使用了排他锁,那么除了A用户之外的其他用户都无法对这行数据进行操作。在数据库中insert、update、delete语句是自动带有排他锁的,在事务没有被提交前,其他用户都无法对上了排他锁的数据进行操作,锁会随着事务的结束而消失。

在数据库里想要使用锁的话,得先把数据的默认的自动事务,改为手动事务,命令:set autocommit=0;

8ea39e07c5ba6985af8a5de94efe2a19.png

改为手动事务后,每次写SQL语句对数据库做出操作都需要使用commit提交或者rollback回滚,不然的话默认是回滚的。

示例使用insert插入一条数据:

38960ec480b43cdbc2d4e1cacc4309f6.png

在没使用commit前,这条语句是不会写入数据到表格中的:

6761ebdae7e4471b8c6bf77bd791c646.png

commit提交之后才会将数据写入到表格中:

2b7bc05558542117baa2f48597a94959.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值