- 在ioc容器中配置一个可以批量操作的sqlSession
(配置在applicationContext.xml)
<!-- 配置一个可以批量操作的sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"></constructor-arg>
</bean>
//sqlSessionFactory就是Spring与Mybatis整合的Factory
<!-- 配置和MyBatis的整合 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mabatic-config.xml"></property>
<property name="dataSource" ref="pooledDataSource"></property>
<!-- 指定mybatis,mapper文件位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
在测试类中获取SqlSession
@Autowired
SqlSession SqlSession;
使用SqlSession批量插入数据
EmployeeMapper为实体类映射
com.bin.crud.dao.EmployeeMapper mapper = SqlSession.getMapper(EmployeeMapper.class);
for (int i = 0; i < 100; i++) {
String uuidStr = UUID.randomUUID().toString().substring(0, 5)+i;
mapper.insertSelective(new Employee(null, uuidStr, "w", uuidStr+"@126.com", 1));
}
使用SqlSession批量插入数据比正常插入数据快