java jdbc 一条connection链接,可以执行多条sql语句,还有必要用连接池吗?

老凤声 2015-10-20 10:56:22
最近在搞jdbc,有的代码是每次执行增删改都要 创建connection,我试了一下,connection当做成员变量,一个类里写个循环,循环插入数据,只用一个connection对象就可以实现。这样说来,还用连接池干什么?这里不是很懂,希望大家可以讨论下。谢谢。
...全文
1151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
空心兜兜 2015-10-20
  • 打赏
  • 举报
回复
用完关闭、释放连接
树成 2015-10-20
  • 打赏
  • 举报
回复 3
关于你这个问题,回答起来比较罗嗦,所以嫌你分给的少了点。 首先你的思维是单线程的思维,当多个线程去访问数据库的时候,你可能要建立多个数据连接分别给每个线程单独的处理业务,此时你就需要连接池了。 其次,在每次使用完连接以后,一般都要把连接资源回收,以便于其它线程或者应用使用数据库连接,数据库的连接是有限的,长时间占用数据库连接会阻碍其它应用使用数据库。 然后,根据上一条问题,应用很可能会频繁的创建和关闭数据库连接,这会损耗数据库性能和应用性能,因此需要缓存一部分活动连接来不断使用,这就需要连接池来进行这种缓存的管理,因为他要保证一个有效的数值范围,即防止频繁建立和关闭连接的性能损耗又不阻碍其它应用对数据库的使用。 最后,连接本身有很多自己的属性和配置,以及重置和初始化的功能等等,这些并不适合在业务逻辑中去实现,又一个专门的连接池功能去管理来隔离模块对这些也无关代码的关心。 总结一下就是,连接池就是全方位有效管理数据库连接的体系结构。
老凤声 2015-10-20
  • 打赏
  • 举报
回复
引用 1 楼 spiniper 的回复:
关于你这个问题,回答起来比较罗嗦,所以嫌你分给的少了点。 首先你的思维是单线程的思维,当多个线程去访问数据库的时候,你可能要建立多个数据连接分别给每个线程单独的处理业务,此时你就需要连接池了。 其次,在每次使用完连接以后,一般都要把连接资源回收,以便于其它线程或者应用使用数据库连接,数据库的连接是有限的,长时间占用数据库连接会阻碍其它应用使用数据库。 然后,根据上一条问题,应用很可能会频繁的创建和关闭数据库连接,这会损耗数据库性能和应用性能,因此需要缓存一部分活动连接来不断使用,这就需要连接池来进行这种缓存的管理,因为他要保证一个有效的数值范围,即防止频繁建立和关闭连接的性能损耗又不阻碍其它应用对数据库的使用。 最后,连接本身有很多自己的属性和配置,以及重置和初始化的功能等等,这些并不适合在业务逻辑中去实现,又一个专门的连接池功能去管理来隔离模块对这些也无关代码的关心。 总结一下就是,连接池就是全方位有效管理数据库连接的体系结构。
我能知道一些了,当时考虑的时候只考虑了单线程,如果单线程的话,我建立一个connection,用这个connection可以执行多次sql语句的执行,执行完之后,断开链接。如果多线程的话需要维护一个连接池,以节省创建链接的资源开销。谢谢!
KeepSayingNo 2015-10-20
  • 打赏
  • 举报
回复
一个类里写个循环,循环插入数据,只用一个connection对象这种场景你用的是prestatment把,可以批量提交SQL。连接池是用来管理connection、Statement 这些对象的,可以并发处理多个任务。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧