Скопируйте ResultSet без использования CachedRowSetImpl.execute()
Я пытаюсь закрыть соединение после выполнения запроса. Раньше я просто создаю CachedRowSetImpl
экземпляр, и он позаботится об освобождении ресурсов для меня. Однако я использую драйвер базы данных Hive из проекта Hadoop. Не поддерживает CachedRowSetImpl.execute()
, Мне интересно, есть ли другой способ, позволяющий мне скопировать ResultSet
возразить и закрыть соединение?
1 ответ
Вы можете заполнить CachedRowSet
из существующего ResultSet
:
public static RowSet executeQuery(String sql) throws Exception {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
con = openConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
CachedRowSet rows = new CachedRowSetImpl();
rows.populate(rs);
return rows;
}finally{
rs.close();
ps.close();
con.close();
}
}