[5-03]事务和连接池
来源:互联网 发布:ssh建立连接的端口号 编辑:程序博客网 时间:2024/05/29 17:32
一,事务
1.mysql数据库默认事务自动提交,每一条sql就是一个事务,oracle事务默认不提交,需要在执行sql后,通过commit手动提交
con.setAutoCommit(false);//开启事务
con.commit;手动提交事务
con.rollback;回滚事务
注意:con必须是同一个
@transaction spring事务管理底层做的就是这个
2.事务的四大特性
1)原子性:事务中操作不可分割,要么全部成功,要么全部失败
2)一致性:必须保证数据完整性一致
3)隔离性:多个事务操作同一条数据记录,事务之间相互隔离,不互相影响
4)持久性:事务提交后,sql执行的数据将永久改变,不能恢复,持久化
二,连接池
1.数据库三步操作中,获取连接connection最占用数据库资源
一次性创建多个连接,将多个连接缓存在内存中 ,形成数据库连接池
(内存数据库连接集合)
如果应用程序需要操作数据库,只需要从连接池中获取一个连接,使用后,并不需要
关闭连接,只需要将连接放回到连接池中。
好处:节省创建连接与释放连接性能消耗 ---- 连接池中连接起到复用的作用,提供程序性能
2.连接池获取数据库连接
// 核心连接池类
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
//设置四个JDBC基本连接属性
comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql:///day14");
comboPooledDataSource.setUser("root");
comboPooledDataSource.setPassword("abc");
Connection con =comboPooledDataSource.getConnection();
3.连接池属性
acquireIncrement 如果连接池中连接都被使用了,一次性增长3个新的连接
initialPoolSize 连接池中初始化连接数量 默认:3
maxPoolSize 最大连接池中连接数量 默认:15连接
maxIdleTime 如果连接长时间没有时间,将被回收 默认:0 连接永不过期
minPoolSize 连接池中最小连接数量 默认:3
4.
DriverManager.getConnection()和DataSource的getConnection()有什么区别?
前者创建一个连接,后者从连接池获取一个连接
前者的close()是释放Connection,而后者的close()只会把Connection归还给连接池
- [5-03]事务和连接池
- 事务和连接池
- 事务和连接池总结
- 事务和连接池简介
- 连接池(事务和多线程问题)
- 黑马程序员 事务和连接池
- Redis连接池、事务和管道
- 连接sql2005数据库文件和事务
- 事务与连接池
- 事务与连接池
- 事务与连接池
- 《数据库系统概念》5-连接、视图和事务
- JDBC项目-MySQL 事务、JDBC事务示例、连接池dbcp和c3p0
- java事务与连接池
- JavaEE(事务与连接池)
- Redis 入门之 事务、连接和服务器
- 数据库连接池和事务
- 1.连接池、密码安全、事务
- 10个有关RESTful API良好设计的最佳实践
- 升级Glibc2.14的坑爹记录
- cmd下javac 错误: 编码GBK的不可映射字符
- sku组合查询算法探讨-之JS实现示例
- 士兵队列训练问题
- [5-03]事务和连接池
- 网页验证码的实现
- Java爬虫(三)--数据抽取
- tabbar 设置背景图片
- PageRank及其用python在spark中实现
- pycharm的updating indices
- JNI DETECTED ERROR IN APPLICATION:java.lang.SecurityExceptionandroid--解决JNI安全权限异常
- boost.asio
- [转]数据链路层的MAC和LLC子层的区别