Тема: MySQL(JDBC) i Java, чи закривати підключення кожного разу.
Доброго дня товариство.
Моя програмка використовує JDBC, і користуюсь я стандартним кодом для виконання mysql запитів:
public class Manager {
static final String USERNAME = "root";
static final String PASSWORD = "12345";
static final String CONN_STRING = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false";
public static Connection conn=null;
public ResultSet rs = null;
/**
* @param String source class or method
*/
public Manager(String source) {
System.out.println(" - object Manager was created from: "+source);
}//end constructor
public void connectToDB(String sourge) {
try {
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
System.out.println(" - db connection established: " + conn.getCatalog() +" "+sourge);
} catch (SQLException e) { e.printStackTrace();}
}//end method
public class WorksSQL extends ConnectionDB{
private String query;
private Work work;
public ArrayList<Work> getWorksObjectList(int id) {
ArrayList<Work> works = new ArrayList<>();
try {
Statement stmt = (Statement) conn.createStatement();
query = "SELECT id_work, work_list, work_price, work_status, DATE_FORMAT(date_time_begin, '%d/%m/%Y') as date_t_b FROM works where id_unit = "+id;
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
work = new Work(Integer.parseInt(rs.getString("id_work")), rs.getString("work_list"), rs.getString("date_t_b"), rs.getString("work_price"), rs.getString("work_status"));
works.add(work);
}
}catch (SQLException e) { e.printStackTrace();}
return works;
}//end method
}
І в класах і методах кожного разу створюється об'єкт для роботи з БД(я думаю що це проблема). В інеті пишуть що хорошою манерою є зразу ж закривати ці підключення методами conn.close(), stmt.close().
Чи це так має бути? Бо на протязі роботи з програмою, створюються 50, а то і 100 екземплярів підключення. ну я розумію що гарбеджКоллектор їх знищує... але!
Тобто як на більш професійному рівні, організовується реалізація запитів mysql?
Щиро вдячний всім за допомогу!
if (Слава Україна) : (смерть корупції)