1.数据库连接池
什么是数据库连接池?
目前连接数据库的方法是通过DriverManager.getConnection接口方法获取连接对象Connection。但每次都通过这种方式获取数据库连接对象,比较麻烦,而且耗费资源。
每次需要连接对象时,都需要通过该方法获取数据库连接对象,非常耗时。如何优化数据库连接对象的获取,使其更短:
使用数据库连接池:在连接数据库之前使用几个数据库连接对象变量来连接数据库(一直连接,永不断开),在池中等待,当要使用数据库连接对象时,直接去pool 使用事先已经连接的对象,使用完后将对象返回到池中。如果池中存在三个预连接的数据库连接对象,但是三个对象同时被使用,那么当下一个用户来使用该数据库连接对象时,他将不得不等待前面的对象用完。该对象被返回到池中,然后再次使用。
连接池的作用是预先准备好多个已经连接到数据库的对象,以备使用。但当你想使用它们时,你可以直接将它们从池中取出,用完后放回原处。优化数据库连接。
Java公司没有实现数据库连接池。它只是做了规范,并没有给出数据库连接池的具体概念。相反,它创建了一个数据源javax.sql.DataSource。该数据库源仅用于数据库连接。优化方法的标准化接口。至于你如何实现这个数据库连接池,就由你来定义了。或者你不想自己使用数据库连接池方法。您只需要在这里以优化的方式向我提供数据库连接对象即可。
这是数据源接口最重要的两个方法。该接口仅提供获取数据库连接对象的规范,您可以自行实现。业界流行的两个数据源插件:
C3P0是常用的、占用资源较少的数据源插件。 DBCP是Apache提供的数据源插件。
DBCP:DATABASE CONNECTION POOL:APACHE启动的数据源插件:
apache官网上的组件下。我们使用maven下载jar包。
您可以选择以上两项之一。
以上就是具体的操作类。
数据库连接池的目的是优化数据库连接对象。它不会像jdbc那样自动为你添加驱动程序。您需要自己手动添加驱动程序。
连接方法如上。
可以看到,我们可以使用数据源类来获取多个连接对象,最多8个。默认情况下,池中有8个连接对象。您可以自行设置池中连接对象的最大数量:
注意:连接池中的对象用完后,必须调用close方法将对象放回池中。
如果其中一个关闭,则可以重新连接第四个。如果是在老版本的DBCP中,这种情况下,第四个的hashcode和第三个的hashcode是一样的,也就是说,其实,第三个连接完成后,就返回了连接对象到池中,而第四个连接仍然具有相同的对象。
C3P0的优点是速度快,占用内存少。 DBCP 2 版改进了资源管理,而DBCP 1 版在资源管理方面做得不太好。
C3P0是一个开源数据源插件,可以进行自动资源回收。主要应用在Harbinet和Spring这两个第三方框架中。
在maven中下载。
主要使用的操作类就是上面的那个。其配置信息可以使用set来设置,也可以将信息放在文件中。
事实上,DBCP和C3P0中的操作类都实现了javax.sql.DataSource接口。
未来企业普遍会使用C3P0来更好地优化资源。
C3P0的优点是:可以自动回收资源,
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
【JDBC数据库连接技术详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
JDBC 真的是数据库编程的神器啊!
有9位网友表示赞同!
想跟数据库打交道,直接就拿jdbc开始敲代码吧~
有20位网友表示赞同!
学习了很久JDBC,感觉理解越来越深刻了。
有8位网友表示赞同!
总是被JDBC的驱动搞得头疼,哪篇教程能讲清楚一些?
有12位网友表示赞同!
JDBC 能连接各种数据库,真方便!
有9位网友表示赞同!
前端只负责显示数据,后台用JDBC操作吧。
有20位网友表示赞同!
java 和mysql 配合jdbc真是绝配。
有11位网友表示赞同!
不太喜欢写太复杂的SQL语句,感觉可以用jdbc简化一下逻辑。
有18位网友表示赞同!
JDBC 真的不是门槛比较高的技术吗?
有19位网友表示赞同!
感觉JDBC 用来处理数据还是非常强大的。
有13位网友表示赞同!
想学点数据库,应该先从JDBC开始吧!
有18位网友表示赞同!
大家推荐哪些好用的JDBC驱动啊?
有5位网友表示赞同!
JDBC的架构真的很清晰易懂啊!
有8位网友表示赞同!
学习jdbc的过程中遇到很多问题,需要多琢磨琢磨。
有15位网友表示赞同!
JDBC 真的太常用啦,掌握一下很有必要。
有15位网友表示赞同!
写完代码发现jdbc连接数据库失败了,好沮丧。。。
有10位网友表示赞同!
网上有很多关于JDBC的案例和教程,可以参考学习啊!
有12位网友表示赞同!
JDBC 的应用场景很多,真是太厉害了!
有12位网友表示赞同!
JDBC 可以让我更自由地操作数据。
有12位网友表示赞同!
要想成为一名合格的 Java 开发者,jdbc 是必不可少的技能。
有12位网友表示赞同!