jdbc api

drivermanager解耦的设计,采用抽象工厂模式,匹配数据库服务商

Connection 跟数据库建立联系的一个封装 本质是一个socket,采用tcp/ip协议

statement语句集,sql的解析器,解析sql语法(协议,语言,语法)

resultset 通过执行sql获得的一个结果的封装,在java中的体现形式就是有游标的map

datasource是对connection的增强采用的是包装器模式

transactionmanager,也是通过获取connection进行commit和rollback操作

 

conn。setAutoCommit(false);设置是否自动提交,false则是不自动提交,需要手动commit

 

事务的特性

原子性,一个事务,也就是数据库的一组操作,要么都提交,要么都回退,不能一个完成另外几个失败

 

一致性,一致性与原子性密切相关,总体状态不会变,

隔离性,一个事务的内部操作以及使用的数据对同时执行的其他事务是隔离的,每个事务之间是相互独立的

并且互不干扰

持久性:数据一旦写进table里面便不可改变,从内存中写到磁盘上

 

脏读:一个事务对数据进行了增删改,但是未提交,另外一个事务可以读取到未提交的数据,如果第一个事务进行了回滚操作

第二个事务就读到了脏数据

不可重复读:一个事务发生了两次读操作,第一次读操作和第二次操作之间另外一个事务对数据进行了修改

这两次读取的数据是不一致的

幻读:一个事务对一定范围内的数据进行批量修改第二个事务在这个范围增加一条数据这时候第一个事务

就会失去对新增数据的修改

隔离级别 readuncommited 可能导致脏读

readcommited避免脏读,可能出现不可重复读和幻读

repeatableread 避免脏读不可重复读,允许幻读

serializable串行化读事务只能一个一个执行避免了脏读不可重复读和幻读,执行效率慢

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值