-
-
Save jasoet/3843797 to your computer and use it in GitHub Desktop.
| /* | |
| * To change this template, choose Tools | Templates | |
| * and open the template in the editor. | |
| */ | |
| package org.secondstack.db; | |
| import java.sql.Connection; | |
| import java.sql.DriverManager; | |
| import java.sql.SQLException; | |
| /** | |
| * | |
| * @author Deny Prasetyo | |
| */ | |
| public class DatabaseConnection { | |
| private static DatabaseConnection instance; | |
| private Connection connection; | |
| private String url = "jdbc:postgresql://localhost:5432/jdbc"; | |
| private String username = "root"; | |
| private String password = "localhost"; | |
| private DatabaseConnection() throws SQLException { | |
| try { | |
| Class.forName("org.postgresql.Driver"); | |
| this.connection = DriverManager.getConnection(url, username, password); | |
| } catch (ClassNotFoundException ex) { | |
| System.out.println("Database Connection Creation Failed : " + ex.getMessage()); | |
| } | |
| } | |
| public Connection getConnection() { | |
| return connection; | |
| } | |
| public static DatabaseConnection getInstance() throws SQLException { | |
| if (instance == null) { | |
| instance = new DatabaseConnection(); | |
| } else if (instance.getConnection().isClosed()) { | |
| instance = new DatabaseConnection(); | |
| } | |
| return instance; | |
| } | |
| } |
Using the Class.forName, the postgresql driver will not appear in the project structure.
And how it supposed to work once connection is closed? I don't see how to reopen this connection without restarting the app.
Great!!!
thanks!
But you need a private constructor.
private DatabaseConnection() { }
Calling getInstance will create a new connection if the existing connection is closed.
is there any way not to hardcode URL, username, and password?
Thanks , It really helped me.
you can create an other method public DatabaseConnection createCon(String url, uName, pswrd){}
is there any way not to hardcode URL, username, and password?
So now which method should I call to get the data base connection ?
DBConnection db = DBConnection.getInstance();
Connection conn = db.getConnection();
Thanks, it helped me.
But I still have to load the driver through the Maven dependencies.