2017-10-05 2 views
0

ich ein DB Singletonklasse geschrieben habe einzelne Datenbankverbindung zur Verfügung zu stellen, und ich bin die Verbindung in einer anderen Klasse zu akzeptieren, was, wenn es null ist, ich habe Prüfbedingung erklären Sie sich bitte auf null Sagen Sie mir die beste PraxisNull-Check in DB Singletons

public class DBSingleton { 
    private static final DBSingleton ONLY_ONE = new DBSingleton(); 
    private Connection connection = null; 
    private DBSingleton() { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connection = DriverManager.getConnection("url", "username","pwd");// SQLException 
     } catch (ClassNotFoundException | SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static DBSingleton getInstance() { 
     return ONLY_ONE; 
    } 

    public Connection getcon() { 
     return connection; 
    } 
} 

eine andere Klasse

private Connection con = DBSingleton.getInstance().getcon(); 
+1

Unsicher was Sie fragen - Wie schreibt man ein Singleton? –

+0

Ich habe DB Singleton-Klasse geschrieben, um einzelne DB-Verbindung bereitzustellen, was ist, wenn es null ist –

+0

warum werfen Sie keine Ausnahme? –

Antwort

0

können Sie versuchen,

public class BDConnection { 
private static final Logger LOGGER = LoggerFactory.getLogger(BDConnection.class); 
private static Connection connection = null; 

public static Connection getConnection() { 
    if(connection == null){ 
     createConnection(); 
    } 
    return connection; 
} 

private static void createConnection() { 
    try { 
     Class.forName(ImportExportFilesUtils.getResourceMessage("driver.name")).newInstance(); 
     connection = DriverManager.getConnection(ImportExportFilesUtils.getResourceMessage("database.test.url"), ImportExportFilesUtils.getResourceMessage("database.test.username"), 
       ImportExportFilesUtils.getResourceMessage("database.test.password")); 
    } catch (Exception ex) { 
     LOGGER.error("Cannot load the driver for ojdbc", ex); 
    } 
} 

public static void closeConnection() { 
    if (connection != null) { 
     try { 
      connection.close(); 
     } catch (SQLException e) { 
      LOGGER.error("Cannot close the connection with the database", e); 
     } 
    } 
} 

}

+0

Gut edit @ N00b Pr0grammer. Ich hoffe, das wird helfen :) thx –

+0

Ich sollte nicht schließen –

+0

Bitte erklären Sie, warum Ihr Code die Antwort ist –