hibernate同时插入数据

hibernate同时插入数据,第1张

Hibernate作为一个ORM框架,提供了方便简单的数据 *** 作方式,支持同时插入多个数据,也就是批量插入数据。批量插入数据可以减少对数据库的访问次数,提高数据插入效率。在Hibernate中,批量插入数据可以通过Session提供的createSQLQuery方法,使用JDBC的批处理方式实现。在执行SQL语句之前,需要开启批处理模式,然后添加所有要被插入的数据,在提交的时候一并执行。需要注意的是,批量插入数据的数量不能太大,否则可能会影响数据库性能,建议每次最多插入几千条数据。

具体如下:

1、Hibernate只是对JDBC轻量级的封装,所有对Hibenate的 *** 作终将转换为JDBC的 *** 作。

2、用Hibernate来 *** 作批量数据,要在Hibernate的配置文件hibernate.cfg.xml中设置批量尺寸属性。

3、关闭Hibernate的二级缓存以提高效率,可以绕过Hibernate直接利用JDBC来 *** 作。

首先,我们应该明白,Hibernate只是对JDBC轻量级的封装,所有对Hibenate的 *** 作终将转换为JDBC的 *** 作.如果真的只想要用Hibernate来 *** 作批量数据的话,首先要在Hibernate的配置文件 hibernate.cfg.xml中设置批量尺寸属性"hibernate.jdbc.batch_size",且推荐关闭Hibernate的二级缓存以提高效率.如:

<hibernate-configuration>

<session-factory>

.......

<property name="hibernate.jdbc.batch_size>这里填你想要的大小值,如50</property>

<property name="hiberante.cache.use_second_level_cache">false</property>

.......

</session-factory>

</hibernate-configuration>

2.可以绕过Hibernate直接利用JDBC来 *** 作.

Connection con = session.connection()

PreparedStatement stmt = con.prepareStatement("insert into table_name values(?)")

for (int i=0i<1000i++)

{

stmt.setString(1, "value"+i)

stmt.addBatch()//将插入的任务添加到批处理中.

}

stmt.executeBatch()//执行批量任务

ts.commit()

session.close()

所以和数据库交互的步骤也就是

stmt.executeBatch()//执行批量任务


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11189809.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存