Я хочу разделить код подключения к базе данных и свой код набора результатов. Единственный способ, которым я могу это сделать, не идеален, потому что он будет создавать 2 пула соединений. Фрагмент кода:Отдельный код подключения JDBC и код ResultSet
public void connectivity() throws SQLException{
try{
Class.forName(driver);
Connection c = DriverManager.getConnection(url, user, pass);
Statement st = c.createStatement();
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
finally{
try{
c.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
public Statement getStatement() throws SQLException{
Class.forName(driver);
Connection c = DriverManager.getConnection(url, user, pass);
Statement st = c.createStatement();
return st;
}
А потом в другом классе у меня есть:
Connectivity connect = new Connectivity();
Statement st = connect.getStatement();
ResultSet r = st.executeQuery(sql);
Я делаю это, потому что я нужен доступ к Statement
для того, чтобы сделать работу ResultSet
. Как я могу абстрагироваться от кода подключения и кода набора результатов, чтобы иметь их в двух разных модулях без создания двух пулов соединений?
Заранее спасибо.
Почему? Вы должны искать * объединить их. Приобретайте соединение, инструкцию и набор результатов в трех последовательных, вложенных, try-with-resources-операторах. NB Строка 'Class.forName()' не нужна с 2007 года. – EJP
У меня есть довольно много наборов результатов для приобретения, и я намерен что-то сделать с каждым из этих наборов результатов. Вместо этого я хочу поместить свой код набора результатов в класс DAO. –