我有2個班。 C_DB和C_Test。如何避免在java中重複的數據庫連接?
在C_DB中,getConnection()方法返回一個連接。如果我多次調用getConnection(),它將重新連接到數據庫並返回多個連接。
有沒有辦法避免這種情況?我想檢查一個連接是否存在,然後返回該連接而不是創建一個新連接。所以只有1個連接到db。
C_DB
public class C_DB {
Connection con;
public C_DB() {
String dbLink = "jdbc:mysql://localhost:3306/database";
String dbUser = "root";
String dbPass = "";
try {
con = DriverManager.getConnection(dbLink, dbUser, dbPass);
} catch (SQLException e) {
throw new IllegalStateException("DB Errors: ", e);
}
}
public Connection getConnection() {
return con;
}
}
C_Test
public class C_Test {
public static void main(String[] args) throws Exception {
Connection con1 = new C_DB().getConnection(); // new connection
Connection con2 = new C_DB().getConnection(); // new duplicate connection
Connection con3 = new C_DB().getConnection(); // new duplicate connection
}
}
我想你只是檢查連接是否爲空。 –
使用[**連接池**](https://github.com/brettwooldridge/HikariCP)。 –
我想@Ravi的做法是最好的..這裏是一個例子.http://codethataint.com/blog/using-singleton-class-for-db-connection-java/ –