wow mysql dbc_DBC中悲观锁介绍附案例详解

DBC中悲观锁介绍附案例详解

了解下DBC中悲观锁:

代码如下:

BDUtils 工具类:

package JDBC;

import java.sql.*;

public class BDUtils {

private BDUtils() {

}

static {

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public static Connection connecTion() throws SQLException {

return DriverManager.getConnection("jdbc:mysql://localhost:3306/center", "root", "123456");

}

public static void close(Connection conn, Statement ps, ResultSet rt) throws SQLException {

if (conn != null) conn.close();

if (ps != null) ps.close();

if (rt != null) rt.close();

}

}

实现类一:

package JDBC;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class JDBCDButils {

public static void main(String[] args) {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rt = null;

try {

//获取资源

conn = BDUtils.connecTion();

//手动开启事务

conn.setAutoCommit(false);

String sql = "select * from center_user where center_name like ? for UPDATE";

ps =conn.prepareStatement(sql);

ps.setString(1, "王%");

rt = ps.executeQuery();

while (rt.next()){

System.out.println(rt.getString("center_name"));

}

//提交事务

conn.commit();

} catch (SQLException throwables) {

//回滚事务

if (conn != null){

try {

conn.rollback();

} catch (SQLException e) {

e.printStackTrace();

}

}

throwables.printStackTrace();

}finally {

try {

BDUtils.close(conn, ps, rt);

} catch (SQLException throwables) {

throwables.printStackTrace();

}

}

}

}

实现类二:

package JDBC;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class JDBCDButilsT {

public static void main(String[] args) {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rt = null;

try {

//获取资源

conn = BDUtils.connecTion();

String sql = "UPDATE center_user SET CENTER_AGE = ? where center_name = ? ";

ps = conn.prepareStatement(sql);

ps.setInt(1, 38);

ps.setString(2, "王涛");

int count = ps.executeUpdate();

System.out.println("共影响:" + count + "行");

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

BDUtils.close(conn, ps, rt);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

输出结果:

Lock wait timeout exceeded; try restarting transaction

当实现类一的事务没有提交时, for update 查询语句进行了锁定,可以理解为行级锁锁定,其他任何程序或者线程在事务没有提交时,都不能对包含的数据进行DML操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

融云任杰:强互动,RTC下一个“爆点”场景|拟合

从无序中寻找踪迹,从眼前事探索未来。 2021 年正值黄金十年新开端,CSDN 以中立技术社区专业、客观的角度,深度探讨中国前沿 IT 技术演进,推出年度重磅企划栏目——「拟合」,通过对话企业技术高管大咖,跟踪报…

直面最大挑战双11 阿里数据中台为商家带来确定性保障

2020双11将成为史上最具科技含量的一届双11。 11月3日,在阿里巴巴双11技术沟通会上,阿里巴巴集团首席技术官程立公布了大规模运用于2020双11的十大前沿技术,既有基于数字技术的原生商业创新,也有引领时代的基础技术突破。 阿里巴巴…

mysql rpm包安装指定路径_安装rpm包时指定路径

1、安装rpm包可以指定路径,但是安装包时它可能执行一些内置的命令。如果手动指定路径,可能造成部分功能失效比如下面安装jdk的rpm包。默认安装后它会创建个软链接。下面就提示创建软链接失败了。但是不影响使用[rootdawn-cobbler-1-1 /]# mkdir /tools[r…

玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍

弹性计算Region化部署和跨可用区容灾本身是非常复杂的课题,本次分享由阿里云弹性计算架构负责人李钟(谢顿)为大家介绍如何选择Region,同时结合阿里云在Region化部署和跨可用区容灾的实践经验,分享多region部署场景中如…

为产业数字化赋能!施耐德电气数字产业示范园落户北京

无人车在工厂里按部就班输送货物,机械臂快速装备各零件,庞大的车间内,智能生产线只有寥寥的工人……小时候畅想过的智能工厂,在北京亦庄新成立的施耐德电气数字产业示范园里实现了。 新成立的示范园包括施耐德电气(中…

在大规模 Kubernetes 集群上实现高 SLO 的方法

简介: 随着 Kubernetes 集群规模和复杂性的增加,集群越来越难以保证高效率、低延迟的交付 pod。本文将分享蚂蚁金服在设计 SLO 架构和实现高 SLO 的方法和经验。 作者 | 蚂蚁金服技术专家 姚菁华;蚂蚁金服高级开发工程师 范康 导读&#xf…

TI Inside,情报协同的最佳实践

6月18日,以“新IN力 御万象”为主题的 TI Inside 威胁情报应用生态协同峰会在北京隆重召开。此次峰会吸引了数百位网络安全产业专家、龙头企业代表、威胁情报生态合作机构、分析机构以及权威媒体齐聚一堂,共同交流威胁情报的最佳应用实践,探讨…

mysql分页查询所有数据库_MySQL 数据库 分页查询/聚合查询

引言在本篇博客简单介绍一下分页查询以及聚合查询简单操做。html分页查询在MySQL中,分页查询通常都是使用limit子句实现,limit子句声明以下:mysqlSELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT子句能够被用于指定 SEL…

阿里云高级技术专家白常明:边缘云的技术挑战和应用创新

随着5G商用周期的开始与新基建的发展, 5G边缘计算带动并赋能数字化行业,逐渐形成了预期可观的产业规模。5G周期内,直接和间接带动产业规模就高达万亿级,在如此巨大的市场规模下,会有越来越多的行业具备数字化转型的技术…

饿了么技术往事(中)

在上一篇文章《饿了么技术往事(上)》中,我介绍了饿了么最早期 All in One 阶段的架构,以及第二阶段业务系统拆分与团队运营的一些思考,以及我对于架构师职责的感受,接下来我会详细介绍饿了么全面服务化的架…

高质量的缺陷分析:让自己少写 bug

简介: 缺陷分析做得好,bug 写得少。阿里资深技术专家和你分享如何进行高质量的缺陷分析,总结了 5 个要点,通过缺陷分析消除开发中的各种盲点,打造一个学习型的团队。 作者 | 嵩华 导读:缺陷分析做得好&am…

python 小海龟鼠标画图_Python小海龟画图

import turtle运动命令forward(d) 向前移动d长度backward(d) 向后移动d长度right(d) 向右移动d长度left(d) 向左一定d长度goto(x,y) 移动到坐标为(x,y)的位置speed(speed) 笔划绘制的速度1-10笔画控制命令up() 笔画抬起,在移动的时候不会绘图down() 笔画落下,下次绘图时则有效s…

IT、OT融合趋势下,西门子举办“第一届西门子工业边缘生态大会”

近日,西门子举办“第一届西门子工业边缘生态大会”,以“聚势边缘 共赋未来”为主题,来自全国机构专家、工业制造商、系统集成商、互联网伙伴、软件和大数据伙伴、媒体等生态伙伴深入交流未来工业的发展方向。 “边缘层融合IT和OT层&#xff0…

T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践

简介: 阿里云工程师李伟男和郭成在 KVM Forum 2020 上详细介绍了阿里云 KVM 虚拟机创建及启动时间优化的具体技术实现,本文根据其演讲整理而成。 对于云计算用户来说,过长的 KVM 虚拟机创建及启动时间非常影响体验,特别是超大规格…

Android网络性能监控方案

背景 移动互联网时代,移动端极大部分业务都需要通过App和Server之间的数据交互来实现,所以大部分App提供的业务功能都需要使用网络请求。如果因为网络请求慢或者请求失败,导致用户无法顺畅的使用业务功能,会对用户体验造成极大影…

打破云原生时代存储瓶颈,SmartX 发布 K8s 云原生存储 IOMesh

编辑 | 宋 慧 供稿 | SmartX 头图 | 付费下载于视觉中国 专业超融合与分布式存储产品与解决方案提供商 SmartX 发布为 Kubernetes 设计和开发的云原生存储产品 IOMesh 预览版(以下简称“IOMesh”),加速数据库等有状态应用的容器化进程。 IO…

flume获取mysql日志到hdfs_Hadoop实战:Flume输入日志到HDFS报错解决

使用Flume把日志存储到HDFS,在启动时报错如下:2017-06-16 08:58:32,634 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:…

全球边缘计算大会:阿里云资深技术专家李克畅谈边缘计算的技术趋势与挑战

2020年11月7日,以“5G边缘计算“为主题的全球边缘计算大会在北京新世界大酒店成功召开,作为业内首个专门为边缘计算人打造的行业盛会,此次活动现场共有超过600来自政、产、学、研、用各界的企业负责人、权威技术专家、通信科技从业者、边缘计…

《科学:无尽的前沿》分享会在京举办,助力中国企业打造“科研的应许之地”

当今世界百年未有之大变局加速演进,疫情影响广泛深远,不稳定性不确定性明显增加。科技创新成为国际战略博弈的主要战场,围绕科技制高点的竞争空前激烈。 6月19日,远望智库、中信出版集团联合举办了新书《科学:无尽的前…

mysql 5.1 db2i_DB2 9.5.0.0升级至9.5.0.9(小版本升级)

0.升级前DB2版本[db2inst1xifenfei ~]$ db2levelDB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09050"with level identifier "03010107".Informational tokens are "DB2 v9.5.0.0", "s07100…