关于数据库连接池
数据库连接池负责分配、管理和释放数据库连接。它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放而引起的连接遗漏。这项技术能明显提高对数据库操作的性能。
ava程序数据库连接,数据源配置,数据库连接池
Java程序,用到的数据库一定要配置数据源吗?
一般写小程序直接在程序里设置连接就可以了,而大的系统一般要配置数据源
1️⃣一个普通的 java 程序,要查询数据库的数据,基本流程是这样
2️⃣使用连接池之后,流程是这样的
1.直接编码连接数据库
JDBC (Java Database Connectivity)
JDBC以一种统一的方式来对各种各样的数据库进行存取,JDBC为开发人员隐藏了不同数据库的不同特性。程序员开发时,知道要开发访问数据库的应用,于是将一个对应数据库的JDBC驱动程序类的引用进行了编码,并通过使用适当的JDBC URL 连接到数据库。
1-1使用纯Java方式连接数据库
由JDBC驱动直接访问数据库
优点:完全Java代码,快速、跨平台
缺点:访问不同的数据库需要下载专用的JDBC驱动
1-2使用JDBC-ODBC桥方式连接数据库
将对JDBC API的调用,转换为对另一组数据库连接API的调用
优点:可以访问所有ODBC可以访问的数据库
缺点:执行效率低、功能不够强大
连接池与数据源区别?
数据库连接池是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应在请求队列中排队等待。并且应用程序可根据池中连接的使用率,动态增加或减少池中的连接数。当关闭连接操作时,连接并不真正的关闭,而是返回到连接池中作为空闲连接在后面继续使用,连接池技术解决了数据库连接频繁打开关闭所带来的性能问题。
JDBC控制事务
事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。
操作: 1. 开启事务 2. 提交事务 3. 回滚事务
使用Connection对象来管理事务
开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
在执行sql之前开启事务 提交事务:commit() 当所有sql都执行完提交事务
回滚事务:rollback() 在catch中回滚事务
.数据库连接池负责分配**,【管理和释放】数据库连接,**它允许应用程序【重复使用】一个现有的
数据库连接**,**而不是重新建立一个。
. 最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有
大量的数据库连接资源被浪费.
\2. 最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将
被加入到等待队列中,这会影响【以后的数据库操作】
\3. 如果最小连接数与最大连接数相差很大:那么最先连接请求将会获利,之后超过最小连接数量的连接
请求等价于建立一个新的数据库连接.不过,这些大于最小连接数的数据库连接在使用完【不会马上被
释放】,他将被放到连接池中等待【重复使用或是空间超时后】被释放.