事务ACID

本文介绍了数据库事务的ACID特性及其操作API,并探讨了不同隔离级别如何解决并发访问问题。此外,还概述了Java反射的基本用法,包括构造函数、方法及属性的操作。
 

事务ACID

原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分

一致性(consistency):在事务处理执行前后,数据库是一致的(两个账户要么都变,或者都不变。)

隔离性(isolcation):一个事务处理对另一个事务处理没有影响。

持续性(durability):事务处理的效果能够被永久保存下来。

 

常用API

Connection.setAutoCommit(flase);关闭自动提交,打开事务

Connection.commit(); 提交事务

Connection.rollback(); 回滚事务

Savepoint sp = conn.setSavepoint();   设置保存点

Conn.rollback(sp);    回滚到保存点

conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  设置隔离级别,可以通过Connection中的常量设置

 

隔离级别

在多线程并发访问数据库并且使用事务的时候,可能会遇到脏读,不可重复读,幻读的情况,需要设置隔离级别来避免

脏读:读到的线程未提交的数据

不可重复读:在一个事务中读取同一个记录两次,获取数据不同

幻读:在一个事务中,读取到的记录数不同

selec@@tx_isolation; 查看隔离级别

set transaction isolation level read uncommitted  设置读未提交

set transaction isolation level read committed   设置读已提交

set transaction isolation level repeatable read  设置可重复读

set transaction isolation level seralizable  设置可序列化

start  transaction  开始事务

rollback  回滚事务

commit  提交事务

 

反射基础

构造函数

Class.getConstructors()  获取所有构造函数

Class.getConstrucor(Class…) 获取到CLASS中带有指定类型函数的构造函数

Constructor.newInstance(Object….) 使用构造函数创建对象,传入指定参数

 

方法:

Class.getMethods()   获取所有公有方法,包括继承的

Class.getDeclaredMethods()   获取所有类中定义的方法,包括私有的

Class.getMethod(String,Class……) 获取指定方法名和参数类型的方法(公有的)

Class.getDeclaredMethod(String, Class...)

获取指定方法名和参数类型的方法(类中定义的)

Method.invoke(Object, Object...)

在制定对象上运行方法, 将制定参数传入

 

属性

Class.getFields()  获取所有公有属性(包括父类继承的)

Class.getDeclaredFields()  获取所有定义的属性(包括私有的)

Class.getField(String)    获取指定属性(公有属性)

Class.getDeclaredField(String)   获取指定属性(定义属性)

Field.set(Object, Object)   设置指定对象的属性值

Field.get(Object)          获取指定对象的属性值

Filed.setAccessible(Boolean)    设置访问权限

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值