2014-11-05 2 views
0

У меня есть хранимая процедура, в которой столбец avg_pressure пуст. Мне нужно создать метод для вычисления среднего числа различных столбцов в строке и поместить эти рассчитанные средние значения в соответствующую строку и средний column.My рассчитывается метод: -Средний расчет различных столбцов хранимой процедуры в java

public int arrayAverage() throws NumberFormatException, SQLException { 
 
\t \t \t  int sum = 0; 
 
\t \t \t  int count = 0; 
 
\t \t \t getConnection(); 
 
\t \t \t \t String A= rs.getString("st1_vs1_bag1_rb"); 
 
\t \t \t \t String B= rs.getString("st1_vs1_bag2_rb"); 
 
\t \t \t \t String C= rs.getString("st1_vs1_bag4_rb"); 
 
\t \t \t  for (int i = 0; i < a.length; i++) 
 
\t \t \t  { 
 
\t \t \t   for (int j = 0; j < a[i].length; j++) 
 
\t \t \t   { 
 
\t \t \t    
 
\t \t \t   sum +=Integer.parseInt(A+B+C); 
 
\t \t \t  
 
\t \t \t    count++; 
 
        }

Мои данные таблицы извлекаются из следующего метода: -

public String[][] getDbTable() 
 
\t \t { 
 
\t 
 
\t 
 
\t \t \t int i = 0; 
 
\t \t \t String [][]a = new String[3600][16]; 
 
\t \t \t System.out.println("datetime is" +d); 
 
\t \t \t System.out.println("datetime is" +currentDate); 
 
\t \t \t try 
 
\t \t \t { 
 
\t    con = getConnection(); 
 
\t \t   
 
\t   
 
\t    String sql = "exec vcs_gauge @gauge_name=?,@first_rec_time=?,@last_rec_time=?"; 
 
\t    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
 
\t    System.out.println("date is "+df.format(currentDate)); 
 
\t    clstmt = con.prepareCall(sql); 
 
\t    clstmt.setString(1,"vs1_bag"); 
 
\t    
 
\t  clstmt.setString(2, "2014-09-01 10:00:00"); 
 
\t  clstmt.setString(3, "2014-09-01 11:00:00"); 
 
\t  
 
\t    clstmt.execute(); 
 
\t    rs = clstmt.getResultSet(); 
 
\t    
 
\t \t \t \t 
 
\t \t \t \t while (rs.next()) 
 
\t \t \t \t { 
 
\t \t \t \t \t for(int j=0; j<16; j++) 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t \t a[i][j] \t = rs.getString(j+1); 
 
\t \t \t \t \t } 
 
\t \t \t \t 
 
\t \t \t \t \t i++; 
 
\t \t \t \t } 
 
\t \t \t 
 
\t \t \t } 
 
\t 
 
\t \t \t catch(Exception e) 
 
\t \t \t { 
 
\t \t \t \t System.out.println("\nException in Display Bean in getDbTable(String code):"+e); 
 
\t \t \t } 
 
\t \t \t finally 
 
\t \t \t { 
 
\t \t \t \t 
 
\t \t \t \t closeConnection(); 
 
\t \t \t } 
 
\t \t \t return a; 
 
\t \t }

Но когда я запускаю arrayAverage() метод с помощью JSP, то следующее исключение. com.microsoft.sqlserver.jdbc.SQLServerException: результирующий набор закрыт.

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

ответ

0

Зависит от типа объединения, которое вы используете, когда вы закрываете соединение, объекты Statement и ResultSet также будут закрыты.

Попробуйте извлечь данные, которые вы хотите, до начала соединения.

Смежные вопросы