首页 数据库 mysql教程 Java程序对MySQL数据库加锁实验

Java程序对MySQL数据库加锁实验

Jun 07, 2016 pm 05:15 PM
mysql数据库 数字

Java程序对MySQL数据库加锁实验,以下实验仅在MYSQL 5.0.45做的实验.

以下实验仅在MYSQL 5.0.45做的实验.

方法1:用mysql命令锁住表.
    

  •   
  •   
  •         pstmt.executeQuery();  
  •         pstmt1.executeQuery();  
  •         pstmt2.executeQuery();  
  •   
  •     }  
  •   
  • }  
  • 一、对于read lock 和 write lock官方说明:
       1.如果一个线程获得一个表的READ锁定,,该线程(和所有其它线程)只能从该表中读取。
          如果一个线程获得一个表的WRITE锁定,只有保持锁定的线程可以对表进行写入。
          其它的线程被阻止,直到锁定被释放时为止。

       2.当您使用LOCK TABLES时,您必须锁定您打算在查询中使用的所有的表。
          虽然使用LOCKTABLES语句获得的锁定仍然有效,但是您不能访问没有被此语句锁定的任何的表。
          同时,您不能在一次查询中多次使用一个已锁定的表——使用别名代替,
          在此情况下,您必须分别获得对每个别名的锁定。

    二、对与read lock 和 write lock个人说明:
        1.read lock 和 write lock 是线程级(表级别).
        2.在同一个会话中加了read lock锁. 只能对这个表进行读操作.对这个表以外的任何表都无法进行增、删、改、查的操作.
           但是在不同会话中,只能对加了read lock的表进行读操作.但可以对read lock以外的表进行增、删、改、查的操作.
        3.在同一个会话中加了write lock锁.只能对这个表进行读、写操作.对这个表以外的任何表都无法进行增、删、改、查的操作.
          但是在不同会话中,无法对加了write lock的表进行读、写操作.但可以对write lock以外的表进行增、删、改、查的操作.
       4.如果表中使用了别名.(SELECT * FROM aa1 AS byname_table)
          在对aa1加锁时,必须把别名加上去(lock tables aa1 as byname_table read)
          在同一个会话中.必须使用别名进行查询.
          在不同的会话中.可以不需要使用别名进行查询.
       5.在多个会话中可以对同一个表进行lock read操作.但不能在多个会话中对同一个表进行lock write操作(这些锁将等待已锁的表释放自身的线程锁)
         如果多个会话对同一个表进行lock read操作.那么在这些会话中,也只能对以锁的表进行读操作.
       6.如果要你锁住了一个表,需要嵌套查询.你必须使用别名,并且,要锁定别名.
         例如.lock table aa1 read ,aa1 as byname_table read;
         select * from aa1 where id in (select * from aa1 as xx  where id=2);  
       7.解锁必须用unlock tables;

       另:
          在JAVA程序中,要想解锁,需要调用 unlock tables来解锁.
          如果没有调用unlock tables.
          关闭connection 、程序结束 、调用GC 都能解锁.      

    linux

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    热门话题

    Java教程
    1663
    14
    CakePHP 教程
    1419
    52
    Laravel 教程
    1313
    25
    PHP教程
    1264
    29
    C# 教程
    1237
    24
    PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 Aug 05, 2023 pm 06:21 PM

    PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户引言:在现代互联网建设中,邮件是一种重要的沟通工具。无论是用户注册、密码重置,还是电子商务中的订单确认,发送电子邮件都是必不可少的功能。本文将介绍如何使用PHPMailer来发送电子邮件,并将邮件信息保存到MySQL数据库中的用户信息表中。一、安装PHPMailer库PHPMailer是

    Go语言和MySQL数据库:如何进行数据冷热分离处理? Go语言和MySQL数据库:如何进行数据冷热分离处理? Jun 18, 2023 am 08:26 AM

    随着数据量的不断增加,数据库的性能成为了一个越来越重要的问题。数据冷热分离处理是一种有效的解决方案,它可以将热点数据和冷数据进行分离,从而提高系统的性能和效率。本文将介绍如何使用Go语言和MySQL数据库进行数据冷热分离处理。一、什么是数据冷热分离处理数据冷热分离处理是一种将热点数据和冷数据进行分类处理的方式。热点数据是指访问频率高、对性能要求高的数据,冷数

    如何使用MySQL数据库进行时间序列分析? 如何使用MySQL数据库进行时间序列分析? Jul 12, 2023 am 08:39 AM

    如何使用MySQL数据库进行时间序列分析?时间序列数据是指按照时间顺序排列的数据集合,它具有时间上的连续性和相关性。时间序列分析是一种重要的数据分析方法,可以用于预测未来趋势、发现周期性变化、检测异常值等。在本文中,我们将介绍如何使用MySQL数据库进行时间序列分析,并附上代码示例。创建数据表首先,我们需要创建一个数据表来存储时间序列数据。假设我们要分析的数

    如何使用MySQL数据库进行图像处理? 如何使用MySQL数据库进行图像处理? Jul 14, 2023 pm 12:21 PM

    如何使用MySQL数据库进行图像处理?MySQL是一种强大的关系型数据库管理系统,除了用于存储和管理数据之外,它还可以用于图像处理。本文将介绍如何使用MySQL数据库进行图像处理,并提供一些代码示例。在开始之前,请确保已经安装了MySQL数据库,并且已经熟悉了基本的SQL语句。创建数据库表格首先,创建一个新的数据库表格,用于存储图像数据。表格的结构可以如下所

    MySQL数据库技能培养到什么程度能够成功就业? MySQL数据库技能培养到什么程度能够成功就业? Sep 12, 2023 pm 06:42 PM

    MySQL数据库技能培养到什么程度能够成功就业?随着信息化时代的快速发展,数据库管理系统成为各行各业不可或缺的重要组成部分。而MySQL作为一种常用的关系型数据库管理系统,具有广泛的应用领域和就业机会。那么,MySQL数据库技能需要培养到什么程度,才能够成功就业呢?首先,掌握MySQL的基本原理和基础知识是最基本的要求。MySQL是一款开源的关系型数据库管理

    如何使用Go语言进行可靠的MySQL数据库连接? 如何使用Go语言进行可靠的MySQL数据库连接? Jun 17, 2023 pm 07:18 PM

    随着大量的数据需要存储和处理,MySQL已经成为了应用开发中最常用的关系型数据库之一。而Go语言由于其高效并发处理和简洁的语法,也越来越受到开发者的欢迎。本文就将带领读者通过Go语言实现可靠的MySQL数据库连接,让开发者能够更加高效地查询和存储数据。一、Go语言连接MySQL数据库的几种方式Go语言中连接MySQL数据库通常有3种方式,分别是:1.第三方库

    如何为 MySQL 数据库实现双向 SSL 认证 如何为 MySQL 数据库实现双向 SSL 认证 Sep 09, 2023 pm 07:36 PM

    如何为MySQL数据库实现双向SSL认证什么是双向SSL认证?双向SSL(SecureSocketsLayer)认证是一种加密通信方式,它要求服务端和客户端之间互相验证对方的身份。在数据库中,双向SSL认证可确保只有经过授权的用户和应用程序可以连接和通信,提高数据安全性。准备工作在开始配置双向SSL认证之前,确保以下条件已满足:已获

    全球数字虚拟币交易平台排行榜前十(2025权威排名) 全球数字虚拟币交易平台排行榜前十(2025权威排名) Mar 06, 2025 pm 04:36 PM

    2025年全球数字虚拟币交易平台竞争激烈,本文根据交易量、安全性、用户体验等指标,权威发布2025年全球十大数字虚拟币交易平台排行榜。OKX凭借强大的技术实力和全球化运营策略居首,Binance以高流动性和低费用紧随其后。Gate.io、Coinbase、Kraken等平台凭借各自优势稳居前列。榜单涵盖Huobi、KuCoin、Bitfinex、Crypto.com和Gemini等交易平台,各有特色,但投资需谨慎。选择平台需考虑安全性、流动性、费用、用户体验、币种选择及监管合规性等因素,理性投资

    See all articles