可以在最后一条sql语句执行完了关闭。保证最后会关闭就行。
解决方案 »
- 求-中关村”黑马程序员“训练营视频教程之<方立勋Jdbc\mysql视频>
- 媒体播放器运行不来?
- 急求servlet,jsp,javabean的使用
- JMS 客户端是否需要定时去取 ActiveMq 上的消息?
- 谁能大致的解释下下面的flex代码
- Hibernate的一个问题
- 求教会springmvc的大神 org.springframework.web.servlet.DispatcherServlet noHandlerFound
- 送分帖!请教学习spring、hibernate、webwork这三样最好的顺序是怎样的?
- 請問怎么配置J2EE程序的執行環境﹖要安裝什么軟件﹖怎么樣的順序安裝﹖
- JavaFX程序渲染不同电脑出现的意外情况,模糊问题,求解!
- 求大神指教 JAVA程序如何在多核机器在指定CPU上运行。通过代码实现
- (急)请大家帮我看看这功能要怎个在jsp页面上显示修改Excel文件的问题?么处理:一
数据库驱动只会加载一次,一般封装DAO会写在静态块里面。 2.访问一条SQL语句后连接数据库的Connection必须要关闭吗 可以不关闭接着访问一条SQL吗
一般操作完数据库需要及时的释放资源,不是执行几条SQL语句的问题,比如写一个批处理,关键是使用完要关闭,比如执行了executeUpdate(),或者遍历完ResultSet,在这个时候才需要关闭。
建议执行完一次数据库操作,就关闭数据库资源。频繁的话,可以考虑数据库连接池
由连接池初始化一定数量的连接,每次程序跟连接池打交道,不直接跟数据库打交道,这样节省资源
可以不关闭接着访问一条SQL吗
可以,但是先关闭掉上次访问数据库的资源(诸如resultset和statement之类的)获取一个connection后,每次产生一个Statement,都相当于产生一个游标,每次操作完,便要关闭该statement
否则,如果一直只向数据库索取连接,但不关闭的话,那么数据库的statement连接耗尽时,便会抛出,游标超出最大数量的异常 ORA-01000: maximum open cursors exceeded
回答:只要保证最后关了就行,比如批量执行的
还有 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 只要弄一次就可以了吗
回答:驱动只需用写一次、也在初次的时候加载、初始化、后面就能直接用
第二个问题:Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 一般是用单例模式来赋值Connection的,只要赋值一次就行,后续的就不需要了。
2.开启连接池以后,就像楼上所说,用完关闭。其实后台socket并没有关闭,等待下一次使用。在Java7中try(申请资源){}这种结构,离开时会自动调用close的
3.业务复杂的时候,并不能一次完成所有sql操作,所以用完必须关。
这个确实可以连续使用最后你要关闭连接 不然会造成数据泄漏