在常用的项目开发中,会从数据库里获取数据,我们最常用的是JDBC,看下JDBC操作原理:
- 加载数据库驱动程序,数据库驱动程序通过classpath配置。
- 通过DriverManager类取得数据库连接对象。
- 通过Connection实例化PreparedStatement对象,编写SQL命令操作数据库。
- 数据库属于资源操作,操作完成后要关闭数据库以释放资源。
在使用JDBC连接数据库时,程序会进行多个Socket连接操作,所有这种传统的数据库操作性能是很低的。因为每一个用户进行数据库操作时都需要经过一些列的步骤。这时候出现了数据源:数据源操作的核心原理就是,在一个对象池中保存多个数据库的连接(也称为数据库连接池,Connection Pool),这样以后再进行数据库操作时,直接从连接池中取出一个数据库连接,当数据库操作完成之后,再将此链接放回数据库联机池中,等待其他用户使用;
在数据库连接池中要注意以下问题:
- 最小连接数:如果一个程序在使用时没有一个用户连接,则数据库最小应该维持的数据库连接数。
- 最大连接数:在一个程序中一个数据库最多可以打开的数据库连接数。
- 最大等待时间:当一个数据库连接池中已经没有更多的数据库连接提供给用户使用时,其他用户等待的最大时间,如果在等待时间内有连接放回,则可以继续使用;如果超过了最大等待时间,则用户无法取得数据库连接;