как в таблицу инсертить коллекцию
От: Аноним  
Дата: 29.05.08 13:36
Оценка:
как в таблицу инсертить коллекцию
или много значений сразу?
Если можно то пример
Спасибо
Re: как в таблицу инсертить коллекцию
От: Аноним  
Дата: 29.05.08 13:46
Оценка:
Здравствуйте, Аноним, Вы писали:

А>как в таблицу инсертить коллекцию

А>или много значений сразу?
используя JDBC драйвер
Re: как в таблицу инсертить коллекцию
От: timoshenkoap  
Дата: 29.05.08 13:48
Оценка:
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
for(String insert: inserts){
stmt.addBatch(insert);
}
stmt.executeBatch();
Re[2]: как в таблицу инсертить коллекцию
От: Аноним  
Дата: 29.05.08 14:14
Оценка:
Здравствуйте, timoshenkoap, Вы писали:

T>Connection con = DriverManager.getConnection(url, user, password);

T>Statement stmt = con.createStatement();
T>for(String insert: inserts){
T> stmt.addBatch(insert);
T>}
T>stmt.executeBatch();
B что на сотни тысяч записей это оптимально?
Re[3]: как в таблицу инсертить коллекцию
От: timoshenkoap  
Дата: 29.05.08 14:18
Оценка:
StatelessSession ss = hibernateTemplate.getSessionFactory().openStatelessSession();
Transaction tx = ss.getTransaction();
try {
tx.begin();

// insert what you want
for (Object obj : objects) {
ss.insert(obj);
}
tx.commit();
} catch (HibernateException ex) {
if (tx != null) {
try {
tx.rollback();
} catch (Exception exc) {
throw ex;
}
}
throw ex;
} finally {
if (ss != null) {
ss.close();
}

}
Но нужно помнить, что инсерт будет происходить, если в коллекции тип объекта изменится или все объекты добавлены
Re[4]: как в таблицу инсертить коллекцию
От: Аноним  
Дата: 29.05.08 14:22
Оценка:
T>StatelessSession ss = hibernateTemplate.getSessionFactory().openStatelessSession();
а при чем тут hibernate к JDBC
у меня его к сожалению нет
Re[5]: как в таблицу инсертить коллекцию
От: timoshenkoap  
Дата: 29.05.08 14:58
Оценка:
Значит использу что я тебе сразу написал и все будет ок.
Если у тебя например миллион записей, то выполняй executeBatch() после каждой тысячи, но
это если боишься чего то.
Re[3]: как в таблицу инсертить коллекцию
От: Sergey Astakhov Россия  
Дата: 29.05.08 17:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, timoshenkoap, Вы писали:


T>>Connection con = DriverManager.getConnection(url, user, password);

T>>Statement stmt = con.createStatement();
T>>for(String insert: inserts){
T>> stmt.addBatch(insert);
T>>}
T>>stmt.executeBatch();
А>B что на сотни тысяч записей это оптимально?

Нет. Для больших объёмов лучше смотреть средства, предоставляемые самой БД. Например, для MSSQL можно использовать операции массового импорта. У Oracle есть свои методы.
Re: как в таблицу инсертить коллекцию
От: VUspenskiy Россия  
Дата: 30.05.08 00:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>как в таблицу инсертить коллекцию или много значений сразу?


В оракле можно массив bindить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.