首页
学习
活动
专区
圈层
工具
发布

【JDBC】JDBC API 详解 ② ( Connection 数据库连接对象 | 获取 SQL 执行对象 - 普通、预编译 SQL 语句 | 事务管理 | 开启事物 | 提交事物 | 回滚事物 )

指定的数据库 的连接会话 , 通过该会话 , 可以执行 SQL 语句 , 并返回 SQL 语句的增删查改的结果 ; Connection 数据库连接对象 有两个作用 : 获取 SQL 执行对象 管理事物...: autoCommit 参数为 true 自动提交事物 , false 手动提交事物 ; void setAutoCommit(boolean autoCommit) throws SQLException...; 提交事物 : void commit() throws SQLException; 回滚事物 : void rollback() throws SQLException; 3、事务管理代码示例...首先 , 先 获取 Connection 数据库连接对象 ; conn = DriverManager.getConnection(url, username, password); 然后 , 设置手动提交事物...; 最后 , 提交事物 ; conn.commit(); // 提交事务 此外 , 如果执行事物过程出现异常 , 则回滚事物 ; conn.rollback(); // 回滚事务 完整代码示例 : Connection

1.7K40

从 UML 四类事物看懂结构事物、行为事物、分组事物与构件的区别

这四个问题,差不多正好对应题目中的四类事物。结构事物回答「系统里面有什么」。行为事物回答「系统里面发生什么」。分组事物回答「这些东西怎样组织」。注释事物回答「这些东西还需要补充说明什么」。...题目明确给出的前提不是「UML2.5.1的语义区域怎样划分」,而是「UML中有四种事物,结构事物、行为事物、分组事物和注释事物」。这实际上已经锁定了经典的Things分类框架。...所以按照题目的四类事物分类,Package应当归入分组事物。因此A包,不选。再看B状态机。StateMachine是行为建模领域非常典型的元素。...题目问的是「此类事物」,也就是前面刚刚确定的结构事物。因此答案只能是构件。这道题还可以进一步联系到程序设计语言。...检查购物车、计算价格、选择支付方式、提交支付、创建订单,这些属于动作序列。两个都属于动态行为,却观察的是不同角度。如果把这几个概念全部放回一个真实系统中,一个完整的软件模型可能同时存在这些内容。

10510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL事物

    文章目录 MySQL事物 1、事务概念 2、事物处理命令 3、ACID特性 4、事务并发存在的问题 5、事务的隔离级别 MySQL事物 1、事务概念 事务是一组SQL语句的执行,要么全部成功,要么全部失败...)到最初的状态 2、事物处理命令 #查看MySQL是否自动提交事务 SELECT @@AUTOCOMMIT;#0表示手动提交事务,1表示自动提交事务 #设置事务提交方式为手动提交方式 set autocommit...,你只有让商品出库,又让商品进入顾客的购物车才能构成一个完整的事务,总体上数据是不变的,保持一致性转态 事务的隔离性(Isolation): 当两个或者多个事务并发执行时,为了保证数据的安全性,将一个事物内部的操作与其它事务的操作隔离起来...,不被其它正在执行的事务所看到,使得并发执行的各个事务之间不能互相影响 事务的持久性(Durability): 事务完成(commit)以后,DBMS保证它对数据库中的数据的修改是永久性的 例如,事物再提交之后...:说明读取未提交的数据是不允许的。

    2K30

    Mysql事物

    数据对并发的其他事物是隔离的,并发执行的各个事物之间不能互相干扰; 持久性(durability):持久性也称永久性(permanence),即一个事物一旦提交,他对数据库中数据的改变就应该是永久性的...,接下来的其他操作或故障不应该对其有任何影响; 持久性并不是数据库的角度完全能解决的 事物的隔离级别 未提交读(read uncommitted)脏读 已提交读(read committed)不可重复读...Mysql事物的默认隔离级别是repeatable read 事物并发问题 脏读:事物A读取了事物B更新的数据,然后B回滚操作,那么A就读取到了脏数据 不可重复读:事物A多次读取同一数据,事物B在事物A...多次读取的过程中,对数据做了更新并提交,导致事物A多次读取同一数据,结果不一致; 幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B,就在这个时候插入了一条分数记录...: 开启事物: 1:begin 2:start transaction(推荐) 3:begin work 事物回滚 rollback 事物提交 commit 还原点 savepoint 还原点的使用,在我看来用处也不打

    2.2K40

    Mysql事物隔离

    事物控制语句 事物用来管理更新,删除,插入语句。...常用的事物控制语句有: BEGIN 显式地开启一个事务; COMMIT 会提交事务,并使已对数据库进行的所有修改成为永久性的; ROLLBACK 回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;...常用的事物处理语句: BEGIN 开始一个事务; ROLLBACK 事务回滚; COMMIT 事务确认; SET AUTOCOMMIT=0 禁止自动提交; SET AUTOCOMMIT=1 开启自动提交...事物隔离 回到文章刚开始的问题,在表中出现了一个key具有两种结果,初步估计是事物隔离的问题。上面简单介绍了事物,以及事物隔离的四个类别,这里详细介绍。...READ-COMMITTED 可以看到,该表的隔离类型为读提交, 即需要提交后其变化才能被另外的事物看见。

    2.4K31

    事物隔离级别

    事务隔离级别: @Transactional(isolation = Isolation.READ_UNCOMMITTED):读取未提交数据(会出现脏读, 不可重复读) 基本不使用 @Transactional...):可重复读(会出现幻读) @Transactional(isolation = Isolation.SERIALIZABLE):串行化 1.READ UNCIMMITTED(未提交读) 事务中的修改,...总结:这就是事务还没提交,而别的事务可以看到他其中修改的数据的后果,也就是脏读。...2.READ COMMITTED(提交读) 大多数数据库系统的默认隔离级别是READ COMMITTED,这种隔离级别就是一个事务的开始,只能看到已经完成的事务的结果,正在执行的,是无法被其他事务看到的...比如事务B执行过程中修改了数据X,在未提交前,事务A读取了X,而事务B却回滚了,这样事务A就形成了脏读。

    1.7K00

    redis的事物

    涉及到的相关命令 multi exec discard watch unwatch 1:multi,exec 对于一般的关系型数据库的事物来说,事物的执行过程无非为 生成事物 产生命令 执行事物。...对于redis来说,multi就是生成事物,exec就是执行事物,discard就是取消事物 基本执行过程如下图 ?...redis的事物过程 可以看到,在我们执行set的时候命令并没有执行,而是写入到了一个控制事物的队列中,返回的信息是QUEUED,在最后exec的时候命令才是真正的执行,并且返回执行结果 2:一般事物都有...Redis事物只能检查出语法错误,如果发现语法错误,整个事物直接结束 ?...redis的事物的语法错误 Discard其实就是在multi之后 清楚事物队列,没什么好说的 3:WATCH WATCH key [key ...]

    1.3K20

    java事物处理

    事物处理 什么是事物:个人认为事物,就是对数据库进行一组操作动作的集合,如果一组处理步骤要么全发生,要么一步也不执行,称这组处理步骤为一个事物。...当所有的步骤完整地被执行,称该事物被提交,当一部分步骤导致执行失败,则事物必须回滚到以前的执行状态....概括起来可以用ACID来表述 事务处理四步曲 1 connection.setAutoCommit(false); //把自动提交关闭 2 正常的DB操作 //若有一条SQL语句失败了...,自动回滚 3 connection.commit() //主动提交 或 connection.rollback() //主动回滚 4 connection.setAutoCommit...(true); //把自动提交打开 举例 :银行账户 第一个用户存了1000块钱 第二个没钱 第一个用户向第二个用户转账 (约束 存款不能小于0) import java.sql.SQLException

    1.5K90

    Mysql事物和锁

    部分提交的(partially committed) 当事务中的最后一个操作执行完成,但还未将变更刷新到磁盘时,则该事务处于部分提交状态。...提交的(committed) 当事务处于部分提交状态,并且将修改过的数据都同步到磁盘之后,此时该事务处于提交状态。 image.png 事务隔离级别 前面提到过,事务必须具有隔离性。...image.png 如上图,我们在Session B中提交了几个隐式事务(mysql会自动为增删改语句加事务),这些事务都修改了number列为1的记录的列name的值,每次事务提交之后,如果Session...READ UNCOMMITTED:未提交读。 READ COMMITTED:已提交读。 REPEATABLE READ:可重复读。 SERIALIZABLE:串行化。...各个隔离级别下可能出现的读一致性问题如下: 隔离级别 脏读 不可重复读 幻读 未提交读(READ UNCOMMITTED) 可能 可能 可能 已提交读(READ COMMITTED) 不可能 可能 可能

    2.5K50
    领券