Chinaunix首页 | 论坛 | 博客
  • 博客访问: 847935
  • 博文数量: 366
  • 博客积分: 10267
  • 博客等级: 上将
  • 技术积分: 4290
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:04
文章分类

全部博文(366)

文章存档

2012年(366)

分类: 系统运维

2012-03-17 21:20:00

ibatis循环处理与批处理--已插入操作为例

1.循环处理

循环操作的ibatis配置

Xml代码 复制代码 收藏代码
  1. <insert id="insertUser" parameterClass="User">
  2. insert into user(
  3. id,
  4. userName,
  5. passWord
  6. )values(
  7. #id#,
  8. #userName#,
  9. #passWord#
  10. )
  11. ]]>
  12. insert>


循环操作的Junit测试

Java代码 复制代码 收藏代码
  1. /**
  2. * 循环插入一条用户记录
  3. * @throws Exception
  4. */
  5. public void insertTest() throws Exception{
  6. Long oldTime = System.currentTimeMillis();
  7. //System.out.println(oldTime);
  8. for(int i= 0; i < 1000 ; i++){
  9. User user = new User();
  10. user.setId(String.valueOf(i));
  11. user.setUserName("用户"+ i);
  12. user.setPassWord("user"+ i);
  13. new UserDaoImpl().insert(user);
  14. System.out.println(i);
  15. }
  16. System.out.println("循环插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s");
  17. }
/** * 循环插入一条用户记录 * @throws Exception */ public void insertTest() throws Exception{ Long oldTime = System.currentTimeMillis(); //System.out.println(oldTime); for(int i= 0; i < 1000 ; i++){ User user = new User(); user.setId(String.valueOf(i)); user.setUserName("用户"+ i); user.setPassWord("user"+ i); new UserDaoImpl().insert(user); System.out.println(i); } System.out.println("循环插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s"); }

2.批处理

批处理的ibatis配置
Xml代码 复制代码 收藏代码
  1. <insert id="insertUserList" parameterClass="java.util.List">
  2. insert into user(
  3. id,
  4. userName,
  5. passWord
  6. ) values
  7. ]]>
  8. <iterate conjunction=",">
  9. (
  10. #list[].id#,
  11. #list[].userName#,
  12. #list[].passWord#
  13. )
  14. ]]>
  15. iterate>
  16. insert>


批处理Junit测试

Java代码 复制代码 收藏代码
  1. /**
  2. * 插入多条记录 --快
  3. * @throws Exception
  4. */
  5. public void insertListTest() throws Exception{
  6. Long oldTime = System.currentTimeMillis();
  7. //System.out.println(oldTime);
  8. List users = new ArrayList();
  9. for(int i=0; i< 10000; i++){
  10. User user = new User();
  11. user.setId(String.valueOf(i));
  12. user.setUserName("用户"+ i);
  13. user.setPassWord("user"+ i);
  14. users.add(user);
  15. System.out.println(i);
  16. }
  17. new UserDaoImpl().insertList(users);
  18. System.out.println("一次插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s");
  19. }
/** * 插入多条记录 --快 * @throws Exception */ public void insertListTest() throws Exception{ Long oldTime = System.currentTimeMillis(); //System.out.println(oldTime); List users = new ArrayList(); for(int i=0; i< 10000; i++){ User user = new User(); user.setId(String.valueOf(i)); user.setUserName("用户"+ i); user.setPassWord("user"+ i); users.add(user); System.out.println(i); } new UserDaoImpl().insertList(users); System.out.println("一次插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s"); }

从上面的例子能够测试出批处理的性能高于循环处理的性能。对于其他的编辑操作,删除操作以及查询操作都产生一样的结果。
阅读(1181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~