您的位置:首页 > 编程语言 > Java开发

学习java(二)-----关于jdbc连接的"擦屁股"问题

2006-09-07 22:14 543 查看
今天在某个blog 上看到一篇关于jdbc的数据库连接,当执行完后关闭的问题,被作者形容为"擦屁股",虽然有些不雅,但是给我印像颇深,而且这个问题很常见,所以将此记录下来:

当我们写java的数据库连接时,以连接到SQL Server 为例,

 


Class.forname("net.sourceforge.jtds.jdbc.Driver");


Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/NorthWind","sa","");

我们经常是打开了,到最后我们对数据库操作完后,却忘记了con.close();(这被作者称为"没有擦干净屁股")或者即使在正常情况下关闭了,可是出现异常的时候,却不能正在常关闭,所以要写到try{}catch{} finally{}中!

在那篇文章中看到了,以为最好方式是:代码如下:

 


import java.sql.*;




Class.forname("net.sourceforge.jtds.jdbc.Driver");


final Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/Northwind","sa","");




try ...{


      final Statement stmt = con.createStatement();




      try...{


           final ResultSet rs = stmt.executeQuery("select *  from products");




           try...{




                while( rs.next() ) ...{


                             System.out.println( rs.getString(2) );


                 }




           }catch( Exception e)...{


                       e.printStackTrace();




             }finally ...{


              rs.close();


            }




        }catch(Exception e )...{


             e.printStackTrace();




           }finally...{


               stmt.close();


            }




        }catch( Exception e)...{


           e.printStackTrace();




           }fianlly...{


                    con.close();


         }

 

 从上面的代码看来,屁股肯定是"擦干净"了!哈哈~~~~~~~~~~~~~~~~~~~~~~~~`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息