iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【JDBC】笔记(5)-
  • 175
分享到

【JDBC】笔记(5)-

【JDBC】笔记(5)- 2019-02-13 00:02:30 175人浏览 猪猪侠
摘要

总结:在当前事务中,用行级锁锁住的记录,那么在此事务结束之前,其他事务将无法对“锁住的记录”进行操作(update/delete),但是select可以...... 1.悲观锁和乐观

【JDBC】笔记(5)-

总结:在当前事务中,用行级锁住的记录,那么在此事务结束之前,其他事务将无法对“锁住的记录”进行操作(update/delete),但是select可以......

1.悲观锁和乐观锁的概念:


2.演示行级锁机制:

注意:DBUtil类 为博主之前自己写的类:【JDBC】编程(2)--- 写一个JDBC工具类;用 JDBC工具类 实现模糊查询

 

 

import java.sql.*;

public class JDBCLock01 {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet resultSet = null;

        try {
            connection = DBUtil.getConnection();

            connection.setAutoCommit(false);

            //锁住“loginName = abc”的这条记录
            String sql = "select loginName,loginPwd from t_user where loginName = ? for update";
            ps = connection.prepareStatement(sql);
            ps.setString(1,"abc");

            resultSet = ps.executeQuery();

            while (resultSet.next()){
                System.out.println("loginName = "+resultSet.getString("loginName")+
                        ",loginPwd = "+resultSet.getString("loginPwd"));
            }

            //添加断点,让此事务在此暂停10s后结束
            Thread.sleep(10000);//使当前线程暂停10000毫秒

            connection.commit();
        } catch (Exception e) {
            if (connection != null) {
                try {
                    connection.commit();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            e.printStackTrace();
        }finally {
            DBUtil.close(connection,ps,resultSet);
        }

    }
}

 

"JDBCLock01"控制台情况:

(暂停大约1000毫秒然后输出:)

loginName = abc,loginPwd = 123

Process finished with exit code 0

 


 

import java.sql.*;

public class JDBCLock02 {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement ps = null;

        try {
            connection = DBUtil.getConnection();

            connection.setAutoCommit(false);

            //修改“loginName = abc”的这条记录的密码
            String sql = "update t_user set loginPwd  = ? where loginName = ?";
            ps = connection.prepareStatement(sql);
            ps.setString(1,"888");
            ps.setString(2,"abc");

            int count = ps.executeUpdate();

            System.out.println("更新数据"+count+"条");

            connection.commit();
        } catch (SQLException e) {
            if (connection != null) {
                try {
                    connection.commit();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            e.printStackTrace();
        }finally {
            DBUtil.close(connection,ps,null);
        }

    }
}

 

"JDBCLock02"控制台输出结果:

("JDBCLock01"程序结束后输出)

更新数据1条

Process finished with exit code 0

 

总结:在当前事务中,用行级锁锁住的记录,那么在此事务结束之前,其他事务将无法对“锁住的记录”进行操作(update/delete),但是select可以。

 

您可能感兴趣的文档:

--结束END--

本文标题: 【JDBC】笔记(5)-

本文链接: https://www.lsjlt.com/news/9035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python学习笔记(5)practic
    2019-02-27 原代码: money = int(input("请输入金额:")) list = ["phone", "clothes", "book", "desk lamp"] list2 = [5000, 200, 35, ...
    99+
    2023-01-30
    学习笔记 Python practic
  • Python学习笔记(5)Timer
    下面的笔记内容来自coursera上的Python公开课。 A good program design principle: I have an u...
    99+
    2023-01-31
    学习笔记 Python Timer
  • Python学习笔记5—Python模块
        python模块分为系统内置的模块、第三方的模块和用户编写的模块    默认情况下,python第三方的模块安装在python 的安装目录下site-packages下,以文件或者目录的形式存放    用户模块,程序模块化对区分功能...
    99+
    2023-01-31
    学习笔记 模块 Python
  • 我的Python学习笔记(5) ArcG
    介绍与点评 主要针对ArcGIS Online和 ArcGIS Portal的用户,使用python api能够很方便的完成很多繁琐的功能,并提供一定的展示能力。 主要功能和特点(注意,基本上所有的功能都需要基于Online或...
    99+
    2023-01-31
    学习笔记 Python ArcG
  • Python爬虫笔记5-JSON格式数
    环境:python-3.6.5 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前...
    99+
    2023-01-31
    爬虫 格式 笔记
  • MSP432学习笔记5——外部中断
    所用单片机型号:MSP432P401r 今日继续我的MSP432电赛速通之路。 外部中断是个很有用的配置 STM32几乎每个I/O口都能配置复用为外部中断 但MSP432并不是这样。 我经过查阅数据手册发现支持中断的引脚为: P1^0~ ...
    99+
    2023-09-04
    笔记 嵌入式硬件 单片机
  • ROS笔记(5)——Bag包概述与解析
    目录 ROS Bag概念与使用场景 ROS Bag文件生成的两种方式 ROS Bag文件的解析 (C++实现) 1、rosbag::View 2、完整C++代码示例 ROS Bag文件的解析 (Python实现) C++与Python 解...
    99+
    2023-09-04
    自动驾驶 人工智能 Python C++ ROS Bag
  • (MYSQL学习笔记5)防止SQL注入
    MYSQL服务器并不存在共享池(我也不清楚共享池是什么)的概念,所以在MYSQL上使用绑定变量最大的好处就是为了防止SQL注入。PHP例子:$stmt = $dbh -> prepare("SELEC...
    99+
    2024-04-02
  • Python学习笔记5——一切皆对象
    我发现我不适合看视频学习,看书看文字觉得更舒服,看大神的博客教程:Python快速教程——这是大神的第一篇博客,点击下一篇,一篇篇看下去,都很通俗易懂,坐看看大神是如何成长的,可以利用碎片时间看,收获很多,不再迷茫。 另外,下面的评论也很...
    99+
    2023-01-30
    学习笔记 一切皆 对象
  • 大模型综述论文笔记1-5
    目录 KeywordsIntroductionSLMNLMPLMLLM Backgroud for LLMsScaling Laws for LLMsKM scaling lawChinchilla scaling law ...
    99+
    2023-08-30
    论文阅读
  • Windows7系统的笔记本设置的5个小窍门
    现在作为微软最新一代操作系统,Win7融合了很多不错的变化。很多笔记本都是安装了Win7,它那华丽的界面以及超强的系统稳定性,让每个使用过的人赞不绝口。当然除了这些尽人皆知的亮点外,它还为移动版用户专门设计了一些&ldq...
    99+
    2023-05-26
    Windows7系统 笔记本设置 系统 笔记本 Windows7
  • VLAN笔记
    虚拟VLAN 什么是VLANVLAN的作用VLAN的优缺点VLAN的配置方法VLAN有哪些接口模式access与trunk接口的区别Hybrid接口拓扑实验 ensp Cisco H3C​ 什么是VLAN VLAN(V...
    99+
    2023-09-26
    tcp/ip
  • SpringCloud笔记
    2023年最新笔记,全文约 3 万字,蕴含 Spring Cloud 常用组件 Nacos、OpenFeign、Seata、Sentinel 等 〇、简介 什么是Spring Cloud? ​ Spring Cloud是一系列框架...
    99+
    2023-08-23
    spring spring cloud java
  • nginx笔记
    Nginx 是一款轻量级的 Web 服务器、反向代理服务器,它内存占用少、启动速度快、并发能力强,在互联网项目中有广泛应用。 文章目录 一、简介二、常用配置1、listen2、serv...
    99+
    2023-09-05
    nginx 服务器 运维
  • Linux笔记
    一。基础思想 一切皆文件。 两条权限原则: 权限分组原则权限最小原则 su是切换用户,而sudo则是用root权限执行某操作( 普通用户+sudo=安全) Linux目录 系统只存在一颗文件树、从==/==开始,所有的文件都...
    99+
    2023-08-20
    linux 服务器 运维
  • express学习笔记5 - 自定义路由异常处理中间件
    修改router/index.js,添加异常处理中间件 ** * 自定义路由异常处理中间件 * 注意两点: * 第一,方法的参数不能减少 * 第二,方法的必须放在路由最后 */router.use((err, req, res, next)...
    99+
    2023-09-16
    express 学习 笔记
  • python3 笔记
    .1# 数的定义:# 格式化: format ---字符串拼接 %d,%f,%s 格式化输出 str()、int()、float()强转类型函数 #age=int(input('请输入您的年龄:'))#print ( age-1) ...
    99+
    2023-01-31
    笔记
  • Python笔记
    列表[List] 元组(truple) 字典{dict} # 列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推 # list comprehension [i for i in range...
    99+
    2023-01-31
    笔记 Python
  • SQLite3 笔记
    SQLite insert 插入一行: 插入一组: 使用select结果插入 多行插入到新表: 多行插入到新表,一步到位: 非常有用的临时表: sqlite update 更新一条记录: update 注意 约束 sqlite ...
    99+
    2023-01-31
    笔记
  • Zookeeper笔记
    为什么要使用Zookeeper dubbo需要一个注册中心,而Zookeeper是我们在使用Dubbo是官方推荐的注册中心 Zookeeper介绍 Zookeeper的集群机制 Zookeepe...
    99+
    2023-09-08
    zookeeper java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作