• Jeecg 如何执行批量insert或者update操作,高效率


     方法:org.jeecgframework.core.common.dao.jdbc.SimpleJdbcTemplate.batchUpdate
         原理: 基于springjdbc封装,批量提交

    在spring batch中,我们经常使用spring提供的jdbcTemplate进行数据库操作。

    假设有一张表People.我们需要插入多条数据。处理的方法有两种:

    第一种方法是对每一个数据,都执行一直insert命令:

    jdbcTemplate.update(INSERT_PEOPLE_QUERY, people.getFirstName(), people.getLastName());

    第二种方法是使用batchUpdate的方法:

    jdbcTemplate.batchUpdate(INSERT_PEOPLE_QUERY, transformToObjects(peoples));
    private List<Object[]> transformToObjects(List<People> peoples) {        
    return from(peoples).transform(new Function<People, Object[]>() {
    @Override
    public Object[] apply(People people) {
    return new Object[]{people.getFirstName(), people.getLastName()};
    }
    }).toList();
    }

    如果需要大量更新数据,并且使用的jdbc driver支持batchUpdate的情况下,使用batchUpdate会比直接执行逐行执行update效率快一个数量级。但如果jdbc不支持batchUpdate,那么jdbcTemplate的batchUpdate在其内部仍然是逐行执行。

    我使用postgreSQL进行试验:

    当需要插入1000个People时,逐行插入需要4秒,使用batchUpdate需要时间不到1秒

    当需要插入10000个People时,逐行插入需要17秒,使用batchUpdate仅仅需要1秒

  • 相关阅读:
    程序员常用字体(vs2008字体修改方案)
    Struts 与 Velocity 的集成
    CheckBox Button
    WINDOWS MOBILE winnet开发心得
    Change background color of a UIAlertView
    Windows Mobile 自定义控件(一)
    ZNLog
    获取磁盘空间大小
    iPhone开发:UIImage的一系列操作
    Windows Mobile 自定义控件(二)
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/7844476.html
Copyright © 2020-2023  润新知