在java中创建Statement和ResultSet的最佳方法是什么

时间:2015-08-22 09:40:30

标签: java jdbc

我应该在try-with-resources语句中初始化Statement和ResultSet,还是只在try块中初始化并在finally块中关闭Statement和ResultSet。

我需要了解根据最佳实践实施此方法的最佳方法

试用资源声明

try(Connection connection = DriverManager.getConnection("url");
    Statement st = connection.createStatement();
    ResultSet rs = st.executeQuery("query")){

} catch (SQLException e) {
    e.printStackTrace();
}

尝试抓住最后

Statement st = null;
        ResultSet rs = null;
        try(Connection connection = DriverManager.getConnection("url"))
        {
            st = connection.createStatement();
            rs = st.executeQuery("query");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        finally {
            try {
                rs.close();
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

1 个答案:

答案 0 :(得分:1)

我相信大多数时候代码更少的代码就是更干净。其次,如果你和团队合作,你的团队成员无法正确阅读你的代码,那么可读性就很重要。

在第一种情况下,对于使用Java7的程序员而言,它看起来非常简单易懂,并且删除了关闭资源的样板代码。在第二种情况下,首先用null进行初始化,最后阻止了try-close-catch session。总是更好的方法是使用第一个清洁代码并再注意一件事,

  

在try-with-resources语句中,运行任何catch或finally块   在声明的资源关闭后。

try-with-resource的问题是你不能使用超出范围的资源尝试它将被限制在try块,而你的第二部分则不是这样。