提高数据库操作的可靠性

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Java中的数据库操作是比较频繁的,很多人在处理数据库操作时往往拿不准,只能保证程序正常运行下没有问题,但是很多都没有释放资源或者没有正确的释放资源,等到有问题又不知道怎么回事!这里给出一个通过JDBC操作数据库的简单例子, 希望有一定的参考价值,为了方便,通过数据库连接工厂获得连接。

有关连接工厂的代码:http://blog.csdn.net/treeroot/archive/2004/09/24/115372.aspx

先看看下面这段代码,你是否觉得有问题?

try {

Connection conn = ConnectionFactory_JDBC2.getConnection();

Statement state = conn.createStatement();

ResultSet rs = state.executeQuery("select * from table");

//这里处理数据

rs.close();

state.close();

conn.close(); //有的连这一句都没有

}

catch(SQLException e){

//这里可以自己处理,也可以抛出

}

这里给出一个替代实现:

Connection conn = null;

Statement state = null;

ResultSet rs = null;

try {

conn = ConnectionFactory_JDBC2.getConnection();

state = conn.createStatement();

rs = state.executeQuery("select * from table");

//处理数据

}

catch(SQLException e){

//这里可以自己处理,也可以抛出

}

finally{

if(rs!=null){

try{rs.close();}catch(SQLException e){}

}

if(state!=null){

try{state.close();}catch(SQLException e){}

}

ConnectionFactory_JDBC2.closeConnection(conn);

}

这个实现好像更加复杂了,但是可靠性更高了,虽然第一段代码的实现一般不会有什么问题,确实很难会有问题(有时候想让Windows兰屏还真不容易),但是还是强烈建议通过finally释放你的资源,不要让潜在的危险存在!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航