Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> prepared statements с разными именами таблиц 
:(
    Опции темы
maxxi
Дата 24.6.2013, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 22.4.2007

Репутация: нет
Всего: нет



Здравствуйте, уважаемые участники форума! у меня следующий вопрос - 

есть много prepared statements, они используют один Id , но обращаются к разным таблицам и разным полям.Можно ли как нибудь собрать их в одно prepared statement?

Вот код:
Код

try {

cConn = ConnectionPool.newQueryConnection();

// получаем набор Id, который в последствии будем использовать во всех prepared statements

sSql = "select id from ABCDE where unit_id =" + unitId + " and deleted = 0";
Vector vIds = DBTableCols.getResultOfSimpleQueryAsVector(sSql, null); 

for (int i = 0; i < vIds.size(); ++i) {
String ugunId = vIds.get(i).toString();

// а вот prepared statement , которое хотелось бы сократить.....

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD1' tb FROM table1 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD2' tb FROM table2 WHERE ugun_id=? ");
sbStmt.append(unionAll); 


sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD3' tb FROM table3 WHERE ugun_id=? ");
sbStmt.append(unionAll); 


sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD4' tb FROM table4 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD5' tb FROM table5 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD6' tb FROM table6 WHERE ugun_id=? ");
sbStmt.append(unionAll); 


sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD7' tb FROM table7 WHERE ugun_id=? ");
sbStmt.append(unionAll); 


sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD8' tb FROM table8 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD9' tb FROM table9 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD10' tb FROM table10 WHERE ugun_id=? ");
sbStmt.append(unionAll); 

sbStmt.append("select COUNT(*) cnt,");
sbStmt.append(" 'ABCD11' tb FROM table11 WHERE ugun_id=? ");


psStmt = cConn.prepareStatement(sbStmt.toString());

for(int j=1;j<12; ++j){
psStmt.setInt(j,Integer.valueOf(ugunId));
}

rs = psStmt.executeQuery();

while (rs.next()) {
int value = Integer.parseInt(rs.getString("cnt"));

if (value != 0) {

allowedToDelete = false;
break;

}

}

}

if(!allowedToDelete){
break;
}


}

}


спасибо за ответы


Это сообщение отредактировал(а) maxxi - 24.6.2013, 22:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.