连接池概念的引入

连接的效率

JDBC连接我们有两种连接模式:短连接长连接

什么是短连接?
短连接就是创建的Connnection对象的时候,及时的开关连接,每次执行SQL语句之后就关闭连接。

什么是长连接?
长连接就是创建的Connection对象不及时关闭,执行查询语句后不关闭。在多线程时候选择性开关连接,创建连接。

下面是两种办法的性能比较

连接方式 优缺点
短连接方式 优点:及时关闭,随用随关。 缺点:连接时间比查询时间长,这样开关浪费时间
长连接方式 优点:需要关闭时候再关闭,节省反复连接时间。缺点:多线程时候很难控制关闭顺序,以及封锁

那我们有没有办法解决呢?
当然有,我们引入连接池概念

连接池

连接池是集长连接短连接各自的优点。是一个深受程序员喜爱的数据库技术工具。它不仅能自动处理多线程问题。是一个智能化数据库工具

如何理解连接池?

连接池就相当于一个池子。池子里面装着多个连接线路,与连接池交互的就是很多个线程。

连接池会一直保持与数据库服务器保持连接状态(8个小时没有操作数据的话,连接线路可能会被MySQL断掉。但是不用担心:配置XML文件一些反馈参数就好)

我们可以从连接池中取个连接线路。假如我取得的连接线路是线路1。那么在线路1使用完毕后,我们需要将线路1放回池子中。放回池子后其他线程就可以继续使用线路1了。

当然你也可以从连接池取出很多连接线路。注:池子中默认有10条连接线路,如果你更改配置文件,可以加入更多连接线路

如果某个线程没有把线路1放回连接池的话。假如其他线程恰恰要使用线路1的话。那么其他线程就会进入等待状态直到线路1放回到池子中(可以被其他线程使用)

当然你也可以选择不等待线路1,你直接从池子中取用线路2进行使用。但是要记住,连接线路是有上限的

你可能感兴趣的:(JDBC)