从DB更新/查询的正确方法

时间:2013-07-31 08:12:29

标签: java sql jdbc

我在使用Java的DatatBases方面很兴奋,我一直在想我是否正在以正确的方式工作。在我的代码中,所有数据库接口都在一个名为DataAccess的类中完成,这是我的代码示例:

请注意,我在输入功能connBlng之前打开了一个连接(isValidOperator())。

这是正确的工作方式,还是每次我需要访问数据库时都应该打开和关闭连接?

if(da.StartBlngConnection() == null)
    return "ERROR"
DataAccess da = new DataAccess();
da.isValidOperator("123")       

//this is code from DataAccess Class
public Boolean isValidOperator(String dn) {
    System.out.println( npgReqID + " - " + LOG_TAG + "inside isValidOperator : " + dn);
    PreparedStatement prepStmt = null;
    ResultSet queryResult = null;
    try{
        prepStmt = connBlng.prepareStatement("select network_id, network_identifier from operators where network_identifier = ?"); 
        prepStmt.setString(1, dn);
        queryResult = prepStmt.executeQuery();
        if (queryResult.next()) {
            return true;
        }
    }catch(Exception e){
        System.out.println(npgReqID + " - "  + e);
        DBLog("", new Date(),"" , npgReqID , "" ,"" , MakeSureNotOutOfRange(GetStackTrace(e),4000), "" , "");
        return false;
    } finally{
        closeStatmentandRS(queryResult, PreparedStatement);
    }

    return false;
} 

1 个答案:

答案 0 :(得分:0)

JDBC plain不是一个非常容易使用的API。也许你可以看一下Dalesbread https://github.com/Blackrush/Dalesbred,这是一个轻量级的JDBC包装器。以下是有关JDBC包装器的讨论:simple jdbc wrapper

我不建议一直关闭数据库连接,你应该使用池。通常,创建数据库连接非常昂贵。