우리는 데이터베이스로서 oracle을 사용하고 있으며 데이터베이스에 3 개의 레코드가 부족합니다. 각 행을 읽으려면 일부 기준에 따라 행을 업데이트해야합니다. Java를 통해이를 달성하는 가장 빠른 방법은 무엇입니까?JAVA를 사용하는 대량 데이터베이스 업데이트
0
A
답변
0
당신은
http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/batch.html
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for (int i=0; i<100000; i++) {
Customer customer = new Customer(.....);
session.save(customer);
if (i % 20 == 0) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();
0
가장 빠른 방법은 저장 프로 시저를 사용하고 내부에 기준 로직을 구현하는 것입니다 최대 절전 모드에서 일괄 처리를 참조 할 수 있습니다.
그러나 자바에서는 jdbc/hibernate.Choice를 사용할 수 있습니다. 선택은 다른 프레임 워크 또는 응용 프로그램 계층과의 요구 사항 및 통합에 따라 달라집니다.
이 요구 사항은 다음 jdbc.Otherwise로 이동 전체 채우기에 대한 간단한 응용 프로그램이 트랜잭션 관리, 캐싱 및 기타 물건을 갖고 싶어한다면, 그것은 아마도 응용 프로그램 외부에서 당신에게
+0
JDBC에 트랜잭션 관리가 없습니다. :) – Kayaman
을하는 데 도움이 hibernate.Hope 가고, 다시 시작 (잘못된 캐싱을 방지하기 위해). 비 트랜잭션 성, 데이터베이스만큼이나. 가능하면 이전 값 + 새로 계산 된 값을 가진 임시 테이블을 사용하여 안전한 업데이트가 가능합니다. –