最近在搞jdbc,有的代码是每次执行增删改都要 创建connection,我试了一下,connection当做成员变量,一个类里写个循环,循环插入数据,只用一个connection对象就可以实现。这样说来,还用连接池干什么?这里不是很懂,希望大家可以讨论下。谢谢。
------解决思路----------------------
关于你这个问题,回答起来比较罗嗦,所以嫌你分给的少了点。
首先你的思维是单线程的思维,当多个线程去访问数据库的时候,你可能要建立多个数据连接分别给每个线程单独的处理业务,此时你就需要连接池了。
其次,在每次使用完连接以后,一般都要把连接资源回收,以便于其它线程或者应用使用数据库连接,数据库的连接是有限的,长时间占用数据库连接会阻碍其它应用使用数据库。
然后,根据上一条问题,应用很可能会频繁的创建和关闭数据库连接,这会损耗数据库性能和应用性能,因此需要缓存一部分活动连接来不断使用,这就需要连接池来进行这种缓存的管理,因为他要保证一个有效的数值范围,即防止频繁建立和关闭连接的性能损耗又不阻碍其它应用对数据库的使用。
最后,连接本身有很多自己的属性和配置,以及重置和初始化的功能等等,这些并不适合在业务逻辑中去实现,又一个专门的连接池功能去管理来隔离模块对这些也无关代码的关心。
总结一下就是,连接池就是全方位有效管理数据库连接的体系结构。
------解决思路----------------------
用完关闭、释放连接
------解决思路----------------------
一个类里写个循环,循环插入数据,只用一个connection对象这种场景你用的是prestatment把,可以批量提交SQL。连接池是用来管理connection、Statement 这些对象的,可以并发处理多个任务。