JDBC数据库连接池原理
JDBC是java数据库连接的简称。它是一种用于实行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。其相关的API都在java.sql.*包下。该包中提供的不是一些具体的类,它提供的是数据库操作定义的接口。定义为接口,是为了满足不同的数据库的要求。
从它的名字(数据库连接)就可以知道它的用途——与数据库建立连接、发送。另外,JDBC还可以操作数据库的语言(sql语句)并处理结果。那么它是怎么样实现与数据库的连接的呢?要实现与数据库的连接就必然要有个数据库的连接对象,在java.sql.*包中提供了一个Connection的接口。Connection对象,是由java.sql.DriverManager类(驱动类)的静态方法getConnection(...)得到,只要得到了这个Connection对象,就与数据库建立了连接。
与数据库建立连接后,就可以实现JDBC的对数据库的语言进行操作的功能,通过这个连接对象,得到sql语句的执行对象,这个对象可以是Statement对象,也可以是PreparedStatement对象,一般使用的是PreparedStatement对象,通过PreparedStatement对象就可以完成对数据库语言的操作,完成一次操作后,与数据库建立的连接也就拆除了,这种操作原理叫线程池原理。这样,每对数据库操作一次,即每执行一条sql语句,就重新得到一个连接对象,然后在进行其他的操作。
假如现在需要执行大量的sql语句,那么就要重复的使用驱动类调用方法来得到连接对象,这样需要花费很长的时间。这时就需要使用数据库连接池原理来处理,所谓数据连接池原理就是当得到连接对象,并执行了sql语句后,通过连接对象调用close()方法将连接对象放回池中,而不是关闭底层JDBC的Tcp/ip连接!这样一来就将取得连接对象的那段时间省下来了,这小段时间在一个小程序中可能体现不是很明显,但是在大型的企业级应用中,用到的数据库多用,相应的对象数据的操作也极大,那么使用连接池原理势必可以大大节省程序的运行时间。