尝试使用API插入表格:使用Hibernate进行相同的使用,由于每100个记录后我都在冲洗会话,因此预计将执行100个记录的批次查询,但是日志显示了每行的单个查询。冬眠?
public void bulkInsert(List<PlatinumUserInfo> ptInfo)
{
try
{
Session session=hibernateTemplate.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
int count=1;
for(PlatinumUserInfo record:ptInfo)
{
try
{
if(count % 100 == 0) {
session.flush();
session.clear();
tx.commit();
tx=session.beginTransaction();
}
session.save(record);
count++;
}
catch(Exception e)
{
logger.info("rolling back txn !");
session.clear();
tx.rollback();
tx=session.beginTransaction();
}
}
tx.commit();
session.close();
}
catch(Exception e)
{
logger.info("exception occurred while bulk insertion !"+e);
}
}
日志:
Hibernate:插入yt_platinum_user(id_platinum_user,email,first_name,insert_date,is_fresco_updated,is_infinity_updated,is_mo_updatient,is_mo_updated,_mo_updated,lind_name,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link,电话,title,title,title,title,title,distup_date(null?,, null?,,?,,?,,?,?,?,?,?(Hibernate:插入yt_platinum_user(id_platinum_user,电子邮件,first_name,insert_date,is_fresco_updated,is_infinity_updated,is_mo_updated,is_mo_updated,lind_name,link_name,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_ewrite,link_ewrite,thite,title,title,title,dipts_date(值(??,?,?(Hibernate:插入yt_platinum_user(id_platinum_user,电子邮件,first_name,insert_date,is_fresco_updated,is_infinity_updated,is_mo_updated,is_mo_updated,lind_name,link_name,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_rewrite,link_ewrite,link_ewrite,thite,title,title,title,dipts_date(值(??,?,?(
如果要使用批处理程序,则需要启用JDBC批处理处理:
hibernate.jdbc.batch_size 20