1. 配置文件:
<!-- 批量保存系统设置 -->
<insert id="saveBatch" param<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.leimingtech.service.module.setting.dao.mapper.SettingMapper">eterType="java.util.List" >
insert into shop_setting(name,value)values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},#{item.value})
</foreach>
</insert>
<!-- 保存系统设置 -->
<insert id="save" parameterType="com.leimingtech.core.entity.base.Setting">
insert into shop_setting(name,value)values(#{name},#{value})
</insert>
</mapper>
@SqlMapper
public interface SettingMapper{
/**
* 批量保存系统设置
* @param setting
*/
void saveBatch(List<Setting> setting);
/**
* 保存系统设置
* @param setting
*/
void save(Setting setting);
}
package com.leimingtech.service.module.setting.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.leimingtech.core.entity.base.Setting;
public interface SettingDao {
/**
* 保存系统设置
* @param setting
*/
void save(Setting setting);
/**
* 保存系统设置
* @param setting
*/
void saveBatch(List<Setting> setting);
}
package com.leimingtech.service.module.setting.dao.impl;
import com.leimingtech.core.entity.base.Setting;
import com.leimingtech.service.module.setting.dao.SettingDao;
import com.leimingtech.service.module.setting.dao.mapper.SettingMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Service("settingDao")
public class SettingDaoImpl implements SettingDao {
@Resource
private SettingMapper settingMapper;
/**
* 保存系统设置
* @param setting
*/
@Override
public void save(Setting setting){
settingMapper.save(setting);
}
/**
* 保存系统设置
* @param setting
*/
@Override
public void saveBatch(List<Setting> setting){
settingMapper.saveBatch(setting);
}
}
测试类:
package sgnctest;
import com.leimingtech.core.entity.base.Setting;
import com.leimingtech.core.filter.XSSSecurityManager;
import com.leimingtech.service.module.frontorganization.service.FrontOrganizationService;
import com.leimingtech.service.module.ncorg.service.CreNcOrgService;
import com.leimingtech.service.module.projectinfo.service.CreProjectInfoService;
import com.leimingtech.service.module.setting.service.SettingService;
import net.sf.json.JSONArray;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.BeansException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.UUID;
public class nctest {
private ClassPathXmlApplicationContext context = null;
@Before
public void before(){
context = new ClassPathXmlApplicationContext("context/applicationContext.xml");
// context.start();
}
/**
* 测试批量插入
*/
@Test
public void insertListBatch(){
System.out.println(context);
SettingService settingService = (SettingService)context.getBean("settingService");
// settingService.save("12345","45556");
List<Setting> list = new ArrayList<Setting>();
for (int i = 0; i <2000 ; i++) {
Setting setting = new Setting();
setting.setName("name"+i);
setting.setValue("value"+i);
list.add(setting);
}
long start = Calendar.getInstance().getTimeInMillis();
settingService.saveBatch(list);
long end = Calendar.getInstance().getTimeInMillis();
System.out.println("runtime:"+(end - start));
}
@Test
public void insertList(){
SettingService settingService = (SettingService)context.getBean("settingService");
List<Setting> list = new ArrayList<Setting>();
for (int i = 0; i <2000 ; i++) {
Setting setting = new Setting();
setting.setName("name"+i);
setting.setValue("value"+i);
list.add(setting);
}
long start = Calendar.getInstance().getTimeInMillis();
for(Setting setting:list){
settingService.save(setting.getName(),setting.getValue());
}
long end = Calendar.getInstance().getTimeInMillis();
System.out.println("runtime:"+(end - start));
}
}
结果比较:
测试结果:
批量插入2000条数据方法执行时间:455
循环调用插入2000条数据执行时间:102240
通过时间比较性能相差200多倍
分享到:
相关推荐
下面小编就为大家分享一篇Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
spring,myibatis,配置文件,数据源,web工程
myibatis的学习例子,内容简单,一看就会,新手入门必看。
springMVC+Myibatis框架整合实例,带简易数据库操作,比较简单一目了然,有一次数据库查询操作。
myibatis+spring+springmvc框架整合,带例子 ,绝对物超所值
myIbatis入门示例、myIbatis helloword示例、myIbatis第一个示例,一看遍懂
SpringMVC3.0+MyIbatis3.0(分页示例
MyiBatis_用户手册包含以下资源: 1.iBatis2.0 开发指南中文版 2.MyiBatis3 用户指南中文版 3.MyiBatis Spring 1.0.0-snapshot 参考文档 以上都是pdf格式文档
springmvc集成了myibatis集成
datasource在applicationContext.xml中 和hibernate整合相比只是修改sessionFactory
MyIbatis3.0入门+进阶实例,直接把资源工程导入到MyEclise里就可以运行,导入到Eclipse里也可以, 包含: ---ibatis_3_学习笔记.pdf ---ibatis3__发布_入门示例.pdf 可以带你熟练使用MyIbatis3.0,实例代码对MyIbatis3.0...
myibatis+spring源码,包含jar包,大家的福利!
myibatis 生成oracle 对应映射文件
有敢于网上下载多不适用,故作一层次分明功能较全面(列表,登录验证,增加)的功能验证性web程序以为分享,因程序为功能验证性程序,故页面之间没有全套连接,可自行通过程序反推,本程序为实用性程序,已实际项目...
SpringMvc和MyIbatis变得越来越受欢迎,MyIbatis在开发的时候比hibernate更好控制,本文就着重介绍两者的配合使用,本文关于SpringMvc的使用不多做介绍大家可以参照我的上篇SpringMvc的文章,进行了解,如有问题大家进行...
myibatis版本为3.2.3 mysql数据库是test
MyIbatis 一项兼容数据库存错过程的技术。与Hibernate基本一样,但他却可以支持存储过程。。这份文档详细的阐述了MyIbatis,是你学习的最佳选择。
myibatis实战教程,上传只为分享
整合的struts2 spring myibatis easyUI基础框架 1.myibatis 的分页 2.异常处理机制 3.logback日记整合 4.oracle agile 整合(不需要agile,可以直接删除代码) 5.其他一些小东西的整合和整理 6.项目中有详细的注解
myeclipse 利用框架 spring+springmvc+springsecurity+myibatis+mysql 实现用户认证和人员增删改查的demo 1.用户认证库与人员管理库是同一个库,我这里为了方便配置文件区别为datasource和securitydatasource 2.这...