`

MyBatis实现批量操作

 
阅读更多
MyBatis实现批量操作

/**
	 * 批量操作
	 * @param sqlID
	 * @param bindParams
	 * @return
	 * @throws SQLException
	 */
	@SuppressWarnings("unchecked")
	private <T> int[] batchUpdate(String sqlID, List<T> bindParams) throws SQLException
	{
		SqlSession sqlse = getSqlSession();
        Connection connection = null;
        Transaction transaction = null;
        Environment env;
        BatchExecutor be;

        Configuration conf = sqlse.getConfiguration();
        conf.setDefaultExecutorType(ExecutorType.BATCH);
        env = conf.getEnvironment();
        connection = env.getDataSource().getConnection();
        connection.setAutoCommit(false);
        transaction = env.getTransactionFactory().newTransaction(connection, false);
        be = new BatchExecutor(conf, transaction);
        MappedStatement ms = conf.getMappedStatement(sqlID);
        int x = 0;

        Object bt;
        List<Object> bts = (List<Object>) bindParams;
         
        for (int i = 0; i < bts.size(); i++) {
            bt = bts.get(i);
            x = be.update(ms, bt);
            System.out.println(x + "x:");
        }

        be.commit(true);
        transaction.commit();
        List<BatchResult> bl = be.flushStatements();
        int[] ret = null;
        if(bl != null){
            for(int b = 0; b < bl.size(); b ++){
                BatchResult br = bl.get(b);
                ret = br.getUpdateCounts();
                System.out.println("re length:" + ret.length);
            }
        }
        be.close(false);
        transaction.close();
        System.out.println(x);
        
        return ret;
	}
分享到:
评论
1 楼 sunzhongcheng 2012-08-13  
.update

相关推荐

    mybatis plus 5种批量操作性能测试

    MyBatis Plus 是 MyBatis 的一个扩展,它在 MyBatis 的基础上提供了更多的便捷功能,包括但不限于批量操作。在数据库交互中,批量操作能够显著提高效率,减少数据库连接的开销。本测试主要探讨了 MyBatis Plus 中的...

    spring中使用mybatis实现批量插入的示例代码

    Spring 中使用 MyBatis 实现批量插入的示例代码 一、前言 在实际开发中,批量插入数据是非常常见的需求。使用 Spring 框架结合 MyBatis 框架,可以实现高效的批量插入操作。本文将详细介绍 Spring 中使用 MyBatis ...

    Mybatis实现多表联合查询和批量插入

    Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...

    Java实现mybatis批量插入数据到Oracle

    本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要理解Oracle数据库的一些基本概念。Oracle是世界上最流行的商业关系型数据库管理系统之一,以其强大的功能和高可靠性而...

    MyBatis防止批量更新1

    MyBatis 提供了一个 Interceptor 接口,开发者可以通过实现该接口来拦截 MyBatis 的 SQL 操作。Interceptor 接口提供了一个 intercept 方法,该方法将被 MyBatis 调用,以便于开发者可以在 SQL 操作前或后执行一些...

    Mybatis批量foreach merge into的用法

    3. Mybatis的动态SQL语法foreach循环插入可以实现批量插入。 4. 使用union拼接sql可能会导致问题sql过长,耗时,性能不好。 5. 使用union all可以拼接所有结果集,union也会拼接所有结果,但会去除重复。 6. 在实际...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    Mybatis Plus 提供了 `batchInsert()` 和 `batchUpdate()` 方法来实现批量插入和更新。这些方法接受一个实体对象列表,然后一次性将所有对象插入或更新到数据库。然而,当涉及到唯一索引时,简单的批量操作可能无法...

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    mybatis postgresql 批量删除操作方法

    在后台,我们使用 MyBatis 来实现批量删除操作。 首先,我们在前端使用 JavaScript 获取选中的 ID: ```javascript var ids = ""; $(".checkbox").each(function() { if ($(this).is(':checked')) { ids += $...

    Mybatis 3+Mysql 实现批量插入

    综上所述,利用MyBatis结合MySQL实现批量插入不仅可以大幅提高数据处理效率,还能有效降低系统资源消耗,是数据库操作中不可或缺的一项技能。通过上述详细讲解,相信读者已经对如何实现批量插入有了清晰的理解。

    Oracle + Mybatis实现批量插入、更新和删除示例代码

    Oracle数据库与MyBatis结合,可以借助其动态SQL功能来实现高效的数据批量操作。 首先,让我们来看看批量插入的方法: 1. **利用标签**: MyBatis的标签用于遍历传入的集合参数,例如List,然后构建SQL的UNION ALL...

    mybatis批量添加实现1

    Oracle通常使用子查询结合`UNION ALL`操作来实现批量插入。在Mybatis映射文件中,这样的配置是这样的: ```xml insert command_content(content,commandId) values select #{item.content,jdbcType=VARCHAR},...

    基于mybatis batch实现批量提交大量数据

    MyBatis批量提交大量数据是一种高效的数据批量操作方式,通过MyBatis的BATCH方式执行增删改方法,可以实现在短时间内处理大量数据。下面对MyBatis批量提交大量数据的实现进行了详细的介绍。 MyBatis批量提交的优点 ...

    mybatis的oracle的批量插入优化和mybatis的generator自动生成三层文件

    在MyBatis中,我们可以通过以下几种方式实现批量插入: 1. **数组或集合参数**:将待插入的数据封装为数组或集合,然后在Mapper XML文件中使用foreach标签遍历并执行插入操作。例如: ```xml INSERT INTO table_...

    MyBatis批量插入Update

    MyBatis批量插入的实现可以通过使用foreach标签来实现。在XML配置文件中,我们可以使用foreach标签来批量插入数据。例如: ```xml insert into user(id,account,password,active,status,name,gender,active_date,...

    批量添加、修改、删除sql语句.docx

    使用MyBatis实现批量操作 在实际开发中,我们经常使用MyBatis框架来实现数据库操作。MyBatis提供了强大且灵活的SQL语句来管理和操作数据。例如,我们可以使用以下MyBatis映射来实现批量更新操作: ```java @Update...

    Mybatis 中的sql批量修改方法实现

    在Java中,如果不使用Mybatis的批量操作,可能会陷入循环调用数据库的困境,这无疑会消耗大量的系统资源且效率低下。 Mybatis的批量修改主要依赖于`&lt;foreach&gt;`标签,这个标签允许我们遍历集合并在SQL语句中生成动态...

    MyBatis批量插入(insert)数据操作

    本文将详细介绍如何在MyBatis中实现批量插入,并通过一个具体的示例来说明。批量插入操作通常涉及以下关键步骤: 1. **实体类定义**: 实体类`TrainRecord`包含了业务所需的属性,如`id`, `activityId`, `empId`, ...

    基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出设计源码

    该项目是一款基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出解决方案...该系统适用于实现高效的Excel数据处理,支持SpringBoot框架和Mybatis持久层技术,并通过EasyExcel实现Excel的快速读写操作。

    mybatis执行批量更新batch update 的方法(oracle,mysql两种)

    这样,MyBatis会把所有的`UPDATE`语句作为单个请求发送到数据库,从而实现批量更新。 3. **批量更新的优势** 批量更新相比于单条更新,有以下几个优点: - **性能提升**:批量处理减少了网络通信的次数,提高了...

Global site tag (gtag.js) - Google Analytics