内容简介:翻译自:https://stackoverflow.com/questions/20458401/how-to-insert-multiple-rows-into-database-using-hibernate
我正在循环列表并插入数据库,但它逐个更新记录.最后我只在数据库的最后一个记录中看到了这一点.
输入名称:Linux,windows,mac
Session session = (Session) HibernateUtil.getSessionFactory().openSession(); String[] items = pi.getNewLicenseName().split(","); for (String item : items) { feature.setName(item); session.save(feature); } session.getTransaction().commit(); HibernateUtil.shutdown();
hibernate.cfg.xml中:
<hibernate-configuration> <session-factory> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="connection.url">jdbc:sqlserver://******</property> <property name="connection.username">*****</property> <property name="connection.password">*****</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <!-- Names the annotated entity class --> <mapping class="com.DAO.Feature"/> </session-factory>
这里三次得到循环并插入数据库.但以某种方式覆盖了值.因为我看到sql insert和update在控制台中运行.
Hibernate: insert into FEATURE (NAME) values (?) Hibernate: update FEATURE set NAME=? where FEATURE_ID=?
请帮我把多行插入数据库.
有一个非常好的章节.
设置属性
hibernate.jdbc.batch_size 20
然后使用此代码
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();
请务必考虑对您的ID生成策略的影响,例如 discussed here .
更新2015-09-23
我终于找到了坐下来在 http://frightanic.com/software-development/jpa-batch-inserts/ 写一篇详细文章的时间.
翻译自:https://stackoverflow.com/questions/20458401/how-to-insert-multiple-rows-into-database-using-hibernate
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据库~dotnetcore连接Mysql插入中文失败
- 如何得到刚插入数据库的那条记录的 ID
- 数据库nedb在update更新数据时,为什么总是会重新插入一条数据?
- 数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(四)之插入SQL
- HashMap为何从头插入改为尾插入
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Probability and Computing
Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00
Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!