У меня около 40 веб-сервисов, и для каждого из них у меня есть следующий код для получения результатов из базы данных. В лучшем случае я извлекаю только около 200 строк из базы данных, во много раз меньше, чем это. Тем не менее, мне сказал другой разработчик, что этот код не очень эффективен, особенно метод getColumnName
, что дорого. Я просто подумал, что буду использовать getColumnName
в качестве ключа, потому что он описательный. Есть ли более эффективный способ сделать то же самое, что и ниже? Если да, то как я могу сделать это более эффективным? Любые шаблоны проектирования, которые я должен изучить, чтобы сделать это лучше? Заранее спасибо.Эффективный способ кодирования Java ResultSet
try{
...
//Open Db Connection
...
ResultSet rs = stmt.executeQuery(QueryClass.getQuery());
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while(rs.next()){
HashMap<String, Object> map = new HashMap<String, Object>(columnCount);
for (int i = 1; i <= columnCount; i++) {
map.put(rsmd.getColumnName(i), rsmd.getObject(i));
}
//add to arraylist
list.add(map);
}
} catch(SQLException e){
.....
}
ли протестированные вы и видели проблемы с производительностью? –
Да, я тестировал, но я не видел проблемы с производительностью. Учитывая мой комментарий коллеги, я думал, что будет лучший способ написать это. Когда я спросил ее, почему она думает, что это неэффективно, и как я могу сделать это лучше, она бы не дала мне ответа. –
Итак, вы доказали свою неправду, и отсутствие ответа указывает на то, что она не знает, о чем говорит. Имя столбца возвращается как часть результата запроса: вот почему он доступен. Не беспокойтесь об этом. Операции с базой данных и сетевой трафик полностью доминируют здесь. – EJP