Java / Sql: вернуть среднее значение для конкретной проблемы столбца - PullRequest
0 голосов
/ 12 ноября 2010

Я использую встроенный SQL с Java. У меня есть простая таблица, где я хочу получить среднее значение из столбца, который содержит температуры. Я пытался использовать ResultSet , но это не увенчалось успехом, я думаю, это может быть потому, что среднее возвращает только одни данные, а не набор. Я попытался гуглить и посмотреть документацию на сайте Sun, но не повезло. Даже мой учитель не мог вспомнить, как это сделать:)

ResultSet aveTemp = stat.executeQuery("SELECT AVG(T_TEMP) FROM TrailTracker"); 
System.out.println("avg temp is " + aveTemp); 

Выводит: avg temp is com.mysql.jdbc.JDBC4ResultSet@16897b2

Я очень хорошо знаю sql, но встроенная в Java новинка для меня. Пожалуйста, помогите.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 12 ноября 2010
ResultSet rs = stmt.executeQuery("select avg(T_TEMP) from TRAILTRACKER"); 
if(rs.next())
    System.out.println("avg temp is " + rs.getFloat(1));

Помните, что индекс начинается с 1 для ResultSet. И вы должны позвонить next(), прежде чем пытаться получить какое-либо значение. И да, ResultSet нуль-безопасен, значит, не будет null.

1 голос
/ 12 ноября 2010

Попробуйте это:

ResultSet aveTemp = stat.executeQuery("SELECT AVG(T_TEMP) FROM TrailTracker"); 
if (aveTemp.next()) {
    System.out.println("avg temp is " + aveTemp.getFloat(1)); 
}

Получает значение с плавающей запятой из первого столбца набора результатов.Вы не можете просто вывести результирующий набор, так как это вызовет метод toString, который вернет имя класса, за которым следует @, за которым следует шестнадцатеричное представление hashCode.

Если вам нужно отформатировать float вопределенное количество знаков после запятой, рассмотрите использование Formatter .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...