java-数据库

一、连接池
1、连接:JDBC定义了一系列的接口规范,具体的实现是由各数据库厂商去实现。先注册驱动和数据库信息、操作Connection、通过statement对象执行SQL,将结果返回给resultSet,然后从resultSet中读取数据并转换为pojo对象。
2、ORM:对象关系映射Object relational Mapping,对Jdbc进行封装。hibernate、mybatise。
3、数据库连接池:在内存中为数据库连接创建一个缓冲池,在池中放入一定的连接,需要用时直接在连接池中获取,用完再放回去。可以通过配置最大连接数防止无尽的创建与数据库的连接。还可以通过连接池的管理机制监控数据库连接数量。如c3p0的DataSource.getNumBusyConnectionsDefaultUser()方法。(jndi是java为其他连接对象提供的资源池)
4、常见的数据库连接池:
C3P0:配置简单,有自动回收空闲连接功能。
dbcp:apache 没有自动回收空闲连接的功能。tomcat默认。
druid:阿里巴巴 结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况
二、事物管理:数据项的一个完整的执行单元。
1、事务的4个特性(ACID):
1) 原子性(atomicity):要么全部执行,要么全部不执行。
2)一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。
3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。
4) 持久性(durability):一个事务一旦提交,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
2、几种类型的事务:
JDBC事务:
JTA(Java Transaction API)事务:
容器事务:
3、7种传播行为:propagation
REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。
never:以非事务方式执行,如果当前存在事务,则抛出异常。 
4、四个隔离级别:ISOLATION
读未提交(Read uncommitted)脏读。a还没有提交就b就读取新数据,a回滚事务。
读已提交(Readcommitted)不可重复读。a修改前后b读取两次,结果不一样。针对的update操作
可重复读(Repeatableread)幻读。a插入前后b读取两次,结果不一样。针对的insert操作
可串行化(Serializable)锁表,某一时间内只允许一个事务访问该表
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值