ibatis、hiberate之批量插入

ibatis批量插入

首先dao层要传递一个list过来,比如是一个user(list数据)

接着xml文件中这么配置,注意类型是"java.util.List,

<insert id="insert" parameterClass="java.util.List"> insert into user(acount,pwd) <iterate conjunction=","> (#user[].acount#,#user[].pwd#) </iterate> </insert>

hiberate批量插入

hiberate的批量插入其实就是循环插入语句,把语句放在事务中提交,如下

Configuration config = new Configuration(); config.configure();

SessionFactory factory = config.buildSessionFactory();

Session session = factory.openSession(); Transaction tx = session.beginTransaction(); for ( int i=0; i<100000; i++ ) { //插入10万条数据 User p = new User();

p.setAcount("123456");

p.setPwd(i.toString()) ; session.save(person); } tx.commit(); session.close();

但是如果这样做的话一般hiberate中会报错的,因为hiberate的默认机制是把没有提交的数据放在缓存中,但是缓存一般放不了非常多的数据,这个时候可以在spring整合的hiberate配置文件中加入如下代码

<property name="hibernate.jdbc.batch_size">100</property>//每100条语句提交一次 <property name="hiberante.cache.use_second_level_cache">false</property>//关闭二级缓存

版权声明:本文为博主原创文章,,未经博主允许不得转载。

更有一种逍遥,浑然忘我,与大自然交融的境界令人心弛神往。

ibatis、hiberate之批量插入

相关文章:

你感兴趣的文章:

标签云: