访问一条SQL语句后连接数据库的Connection必须要关闭吗 可以不关闭接着访问一条SQL吗
可以直接 con.prepareStatement("sql语句")
还有 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 只要弄一次就可以了吗
接着连接数据库就不需要Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()和DriverManager.getConnection(URL, USER, PWD);了吗
------解决方案--------------------
1.Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
数据库驱动只会加载一次,一般封装DAO会写在静态块里面。
2.访问一条SQL语句后连接数据库的Connection必须要关闭吗 可以不关闭接着访问一条SQL吗
一般操作完数据库需要及时的释放资源,不是执行几条SQL语句的问题,比如写一个批处理,关键是使用完要关闭,比如执行了executeUpdate(),或者遍历完ResultSet,在这个时候才需要关闭。
------解决方案--------------------
一条SQL语句后连接数据库的Connection必须要关闭吗
建议执行完一次数据库操作,就关闭数据库资源。频繁的话,可以考虑数据库连接池
由连接池初始化一定数量的连接,每次程序跟连接池打交道,不直接跟数据库打交道,这样节省资源
可以不关闭接着访问一条SQL吗
可以,但是先关闭掉上次访问数据库的资源(诸如resultset和statement之类的)
获取一个connection后,每次产生一个Statement,都相当于产生一个游标,每次操作完,便要关闭该statement
否则,如果一直只向数据库索取连接,但不关闭的话,那么数据库的statement连接耗尽时,便会抛出,游标超出最大数量的异常 ORA-01000: maximum open cursors exceeded