JDBC以及事务

1、JDBC是什么?

        JDBC是Java DataBase Connectivity(Java语言链接数据库)

2、JDBC的本质

        JDBC是一套接口,有调用者(java工程师)和实现者(SUN公司)(实现类被称为驱动)之分,跟面向接口调用、面向接口写实现类,都属于面向接口编程

  • 为什么面向接口?
    • 解耦合:降低程序的耦合度,提高程序的扩展力;

3、关系

4、JDBC编程6步

- 第一步:注册驱动(作用:告诉Java程序,即将要链接的是哪个品牌的数据库)(DriverManager接口)- 第二步:获取连接(表示JVM的进程与数据库的进程打开了,这属于进程之间的通信,使用完后一定要关闭)(Connection接口)- 第三步:获取数据库操作对象 (专门执行sql语句的对象)(Statement接口、PreparedStatement接口)- 第四步:执行SQL语句(主要是DML DQL)- DML(数据操作语言): insert、delete、update,对表中的数据进行增删改- 第五步:处理查询 结果集(只有第四部执行的是select语句时,这一步才会执行)(ResultSet接口)- 第六步: 释放资源(使用完之后一定要关闭资源,Java和数据库属于进程间的通信,开启之后一定要关闭)(close)

 5、JDBC事务

  •  什么是事务
    • 事务是数据库提供的一个特性
    • 事务:组成各个数据的(最小)执行单元,要么都成功,要么都失败
    • 我们使用一个例子来说明:以转账为例
      • * 转账的功能,冠希给美美转1000元钱。    
        * 使用事务    
        * 	先给冠希扣除掉1000元        
        * 	再给美美加上1000元        
        * 事务结束了
      •  在MYSQL中操作
        • create table t_account(    
          id int primary key auto_increment,        
          username varchar(20),        
          money double        
          );--两种方式,第一种:使用命令的方式
          start transaction;		--开启事务
          update t_account set money = money ‐ 1000 where username = '冠希';
          update t_account set money = money + 1000 where username = '美美';
          commit;					--提供事务(事务已经结束了,数据永久的保存到数据库中了)
          rollback;				--回滚事务(事务已经结束了,数据回滚到最初始化的状态)--第二种方式:设置MySQL事务不默认提交的方式
          --MySQL数据库的事务是默认提交的。
          update t_account set money = money ‐ 1000 where username = '冠希';   --默认使用了一个事务
          --设置让MySQL的数据库的事务不默认提交
          set autocommit = off或者0
          --编写SQL语句(执行完,都没有提交)
          sql1
          sql2
          --手动提交和回滚
          commit;
          rollback;
  •  事务的特性
    • 原子性
      • 表示事务中所有操作是不可再分割的原子单位
    • 一致性
      • 事务执行前后数据需要保证一致
    • 隔离性
      • 多个事务同时操作一条记录,事务之间不能互相干扰
    • 持久性
      • 事务一旦结束了,数据将永久的保存到数据库中
  • 事务的隔离
    • 不考虑隔离性所引发的问题
      • 1、脏读:一个事务读取到了另一个事务未提交的数据
        2、不可重复读:一个事务读取到了另一个事务提交的数据,导致了多次查询的结果不一致。强调的是update,修改记录的数据。
        3、虚度(幻读):一个事务读取到了另一个事务提交的数据,导致了多次查询的结果不一致。强调是insert,向表中添加一条数据。
    •  设置隔离级别
      • 事务的隔离级别
        • Read uncommitted		--读未提交,什么都解决不了
          Read committed			--读已提交,避免脏读,但是不可重复读和虚读有可能产生
          Repeatable read			--可重复度,避免脏读和不可重复读,虚度有可能产生的(mysql默认)
          Serializable			--串行,避免各种读(当有一个事务的级别达到此时就会上锁,另一个就不再允许                                                                                    执行任何修改操作,以此达到避免各种问题的目的)

           

      •   4中隔离的安全性和效率
        • 安全		Serializable > Repeatable read > Read committed > Read uncommitted
          效率		Serializable < Repeatable read < Read committed < Read uncommitted

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

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

相关文章

electron线上跨域问题

一、配置background.js win new BrowserWindow({webPreferences: {nodeIntegration: true, // 使渲染进程拥有node环境//关闭web权限检查&#xff0c;允许跨域webSecurity: false,// Use pluginOptions.nodeIntegration, leave this alone// See nklayman.github.io/vue-cli-p…

终于找到能在mac上正常保存密码的navicat了- navicat v17.0.9

找了一晚上&#xff0c;终于找到能在mac上正常保存密码的navicat了。 免费分享&#xff0c;不用关注公众号&#xff0c;不用看广告。如果帮助到你&#xff0c;可以的话帮忙给 https://github.com/gone-io/gone 点个星星。 链接: https://pan.baidu.com/s/1ZvGqSMNcv8uMCIpwf0…

Charls数据库+预测模型发二区top | CHARLS等七大老年公共数据库周报(6.19)

七大老年公共数据库 七大老年公共数据库共涵盖33个国家的数据&#xff0c;包括&#xff1a;美国健康与退休研究 (Health and Retirement Study, HRS)&#xff1b;英国老龄化纵向研究 &#xff08;English Longitudinal Study of Ageing, ELSA&#xff09;&#xff1b;欧洲健康、…

ThreadX简介

文章目录 1. 摘要2. ThreadX的特性2.1 免费开源2.2 安全认证级别高2.3 组件完善2.4 实时性高2.5 支持多核2.6 支持应用动态加载2.7 代码符合MISAR规范2.8 文档全面,例程丰富2.9 集成方便3. 移植示例4. 产品应用示例1. 摘要 在嵌入式系统领域,实时性能、系统稳定性以及广泛的…

Windows 10,11 Server 2022 Install Docker-Desktop

docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 docker-compose Compose 是用于定义和运行…

基于大语言模型的多意图增强搜索

随着人工智能技术的蓬勃发展&#xff0c;大语言模型&#xff08;LLM&#xff09;如Claude等在多个领域展现出了卓越的能力。如何利用这些模型的语义分析能力&#xff0c;优化传统业务系统中的搜索性能是个很好的研究方向。 在传统业务系统中&#xff0c;数据匹配和检索常常面临…

LangChain之Agent代理(下)

LangChain之Agent代理 OpenAI Functions Agent概述配置环境变量基本使用实际应用示例 OpenAI Tools Agent概述基本使用实际应用示例 ReAct Agent概述Google搜索APIinitialize_agentcreate_react_agent Structured Chat AgentSelf-Ask with Search Agent OpenAI Functions Agent…

stl之string

构造函数 void test1() {string s1;//不传参cout << s1 << endl;string s2("123456");cout << s2 << endl;string s3(s2);cout << s3 << endl;string s4(s2, 1, 5);cout << s4 << endl;string s5("123456&quo…

LLM vs SLM 大模型和小模型的对比

语言模型是能够生成自然人类语言的人工智能计算模型。这绝非易事。 这些模型被训练为概率机器学习模型——预测适合在短语序列中生成的单词的概率分布&#xff0c;试图模仿人类智能。语言模型在科学领域的重点有两个方面&#xff1a; 领悟情报的本质。 并将其本质体现为与真实…

gin-vue-amdin 新增路由

1&#xff1a;在api目录的example 下新建controller 层如下图&#xff08;&#xff09;&#xff1a; 在enter.go 中 加入 这个新建的结构体&#xff1a; 2&#xff1a;在router 的example 文件夹下 新建对应的路由文件 3&#xff1a;在initlize 的router 中 添加对应的代码&a…

推动多模态智能模型发展:大型视觉语言模型综合多模态评测基准

随着人工智能技术的飞速发展&#xff0c;大型视觉语言模型&#xff08;LVLMs&#xff09;在多模态应用领域取得了显著进展。然而&#xff0c;现有的多模态评估基准测试在跟踪LVLMs发展方面存在不足。为了填补这一空白&#xff0c;本文介绍了MMT-Bench&#xff0c;这是一个全面的…

【数学建模】——【python库】——【Pandas学习】

专栏&#xff1a;数学建模学习笔记 pycharm专业版免费激活教程见资源&#xff0c;私信我给你发 python相关库的安装&#xff1a;pandas,numpy,matplotlib&#xff0c;statsmodels 总篇&#xff1a;【数学建模】—【新手小白到国奖选手】—【学习路线】 第一卷&#xff1a;【数学…

互联网信息服务算法备案流程与要求

一、备案申请的办理流程 企业通过网信办的互联网信息服务算法备案系统&#xff08;https://beian.cac.gov.cn/#/index&#xff09;提交算法备案申请。填报信息包括三部分&#xff0c;分别是算法主体信息、产品及功能信息、算法信息。备案中比较重要的文件包括主体信息中的《落…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、 过 电子书 是否遗漏 【下载&#xff1a;本章 PDF GitHub 页面链接 】 【第二轮 才整理的&#xff0c;忘光了。。。又看了一遍视频】 3、 过 MOOC 习题 看 PDF 迷迷糊糊&#xff0c; 恍恍惚惚。…

深度学习 - Transformer 组成详解

整体结构 1. 嵌入层&#xff08;Embedding Layer&#xff09; 生活中的例子&#xff1a;字典查找 想象你在读一本书&#xff0c;你不认识某个单词&#xff0c;于是你查阅字典。字典为每个单词提供了一个解释&#xff0c;帮助你理解这个单词的意思。嵌入层就像这个字典&#xf…

道路救援入驻派单小程序开源版开发

道路救援入驻派单小程序开源版开发 1、用户立即救援 2、后台收到救援通知&#xff0c;派单救援师傅. 道路救援入驻派单小程序通常会包含一系列功能&#xff0c;旨在方便救援服务提供商、用户和后台管理系统之间的交互。以下是一个可能的功能列表&#xff1a; 用户端功能&…

Camera开发-相机输出常用数据格式

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成&#xff0c;共6个面&#xff0c;所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示&#xff0c;三维坐标…

【极速入门版】编程小白也能轻松上手Comate AI编程插件

文章目录 概念使用错误检测与修复能力API生成代码生成json格式做开发测试 在目前的百模大战中&#xff0c;AI编程助手是程序员必不可少的东西&#xff0c;市面上琳琅满目的产品有没有好用一点的&#xff0c;方便一点的呢&#xff1f;今天工程师令狐向大家介绍一款极易入门的国产…

three.js - MeshStandardMaterial(标准网格材质)- 金属贴图、粗糙贴图

金属贴图、粗糙贴图 金属贴图&#xff1a;metalnessMap 和 粗糙贴图&#xff1a;roughnessMap&#xff0c;是用于模拟物体表面属性的两种重要贴图技术&#xff0c;这两种贴图&#xff0c;通常与基于物理的渲染&#xff08;PBR&#xff09;材质&#xff08;如&#xff1a;MeshSt…