Mybatis 批量插入数据库 informix数据

整合Spring 与 Mybatis 的批量插入数据,需要使用到SQLSessionFactory 使用原生sql语句进行批量写入,速度会快上很多。

  1. 需要在Spring的配置文件中配置好mybatis相关的配置,包括了各种各样的bean这一点非常重要,因为是mybatis 与Spring整合了,所以事务相关的东西都交给了Spring来处理,如果这步没有处理好,那么就下一步就无法注入SqlSessionFactory 到service impl 方法中。(这个配置会在Spring的xml配置文件中出现)
  2. 然后在server impl 方法中,@Autowerd 进SqlSessionFactory
  3. 接着,获取到session然后再执行具体的逻辑操作。
@Autowired
private SqlSessionFactory sqlSessionFactory;

/*这是伪代码*/
public String getPersion(List list){
	SqlSession session = 
				sqlSessionFactory.openSession(Executory.BaTCH,false);
	String sql = "insert into amount (id,name,num) values (?,?,?)";
	Connection connection = session.getConnection(sql);
	PrepareStatement ps = connection.prepareStatement();
	for( int i=0; i<= list.size(); i++ ){
		Amount amount = list.get(i);
		ps.setString(1,amount.getId());
		ps.setString(2,amount.getName());
		ps.setString(3.amount.getNum());
		ps.addBatch()
		if(i % 2 == 0 || i == list.size() -1){
			ps.executeBatch();
			connection.commit();
			ps.clearBatch();
		}
	}
	session.close();
	return null;
}

执行该段伪代码相关的完整代码,即可写入批量写入数据库。记住我这里提供的是大致思路如此。如有疑问,清留言讨论。

你可能感兴趣的:(BUG总结,心得)