`
huibin
  • 浏览: 750741 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Spring JdbcTemplate 批量插入或更新操作

阅读更多

 

用 JdbcTemplate 进行批量插入或更新操作

方法一:

代码只是测试用的一个小例子。

public int insertContractAch(List list) throws DataAccessException {  
    final List temList = list;  
    String sql = "insert into contract_ach_t " +  
            " values(?,to_date(?,'yyyy-mm-dd'),?,?) ";  
    try{  
        int[] ii = this.getJdbcTemplate().batchUpdate(sql, new MyBatchPreparedStatementSetter(temList));  
        return ii.length;  
    }catch (org.springframework.dao.DataAccessException e) {  
        e.printStackTrace();  
        throw new DataAccessException(e.getMessage());  
    }  
}  
/**
* 处理批量插入的回调类
* */  
private class MyBatchPreparedStatementSetter implements BatchPreparedStatementSetter{  
    final List temList;  
    /**通过构造函数把要插入的数据传递进来处理*/  
    public MyBatchPreparedStatementSetter(List list){  
        temList = list;  
    }  
    public int getBatchSize() {  
        return temList.size();  
    }  
  
    public void setValues(PreparedStatement ps, int i)  
            throws SQLException {  
        ContractAchVO contractAchVO = (ContractAchVO)temList.get(i);  
        ps.setString(1, contractAchVO.getContractCode());  
        ps.setString(2, contractAchVO.getCreateDate());  
        ps.setString(3, contractAchVO.getEmployeeId());  
        ps.setString(4, contractAchVO.getPercent());  
    }  
}

方法二:

//插入很多书(批量插入用法)
public void insertBooks(List<Book> book)
{
  final List<Book> tempBook=book;
  String sql="insert into book(name,pbYear) values(?,?)";
  jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter()
  {
   public void setValues(PreparedStatement ps,int i)throws SQLException
   {
    String name=tempBook.get(i).getName();
    int pbYear=tempBook.get(i).getPbYear();
    ps.setString(1, name);
    ps.setInt(2, pbYear);
   }
   public int getBatchSize()
   {
    return tempBook.size();
   }
  });
   
}

分享到:
评论
1 楼 boreas_baosj 2010-07-01  
如果我要返回数据库表的主键id呢?

相关推荐

    SpringJdbcTemplate封装工具类

    "更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...

    Spring JdbcDaoSupport 批量插入数据

    总结起来,`Spring JdbcDaoSupport`是简化数据库操作的有效工具,特别适合批量插入数据。通过`JdbcTemplate`的`batchUpdate`方法和`BatchPreparedStatementSetter`,我们可以高效地处理大量数据,同时保持代码的整洁...

    使用Spring JDBCTemplate进行增删改查curd操作

    JdbcTemplate还支持批量操作,比如批量插入: ```java public void batchInsert(List&lt;User&gt; users) { List[]&gt; batchArgs = new ArrayList(); for (User user : users) { batchArgs.add(new Object[]{user....

    SpringBoot JdbcTemplate批量操作的示例代码

    SpringBoot JdbcTemplate批量操作是提高数据处理效率的重要手段,尤其在处理大量数据插入或更新时。JdbcTemplate作为Spring框架的一部分,提供了便捷且安全的数据库访问方式,它简化了JDBC的使用,避免了手动管理...

    Spring的JdbcTemplate插入操作返回主键ID的方法 - - ITeye技术网站.htm

    Spring的JdbcTemplate插入操作返回主键ID的方法 - - ITeye技术网站

    Spring JdbcTemplate.batchUpdate 例子

    `JdbcTemplate`的`batchUpdate`方法就是用来实现这样的功能,它可以批量执行更新语句,如INSERT、UPDATE或DELETE。 `batchUpdate`方法的基本使用如下: ```java int[] result = jdbcTemplate.batchUpdate( ...

    spring jdbctemplate实例

    在本实例中,我们将探讨如何使用Spring JdbcTemplate进行基本的CRUD(创建、读取、更新、删除)操作。 首先,我们需要在Spring配置文件中定义JdbcTemplate bean。这通常通过DataSource(数据源)来完成,例如: ``...

    spring jdbc Templatetest 访问mysql数据库,批量插入数据

    本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...

    JdbcTemplate的批量方法使用

    在这个场景中,我们将详细探讨如何使用`JdbcTemplate`进行批量插入和删除操作。 批量插入操作在数据库处理大量数据时非常常见,它可以显著提高性能,因为数据库通常会优化批量处理,而不是单独处理每一项。在提供的...

    spring框架 jdbcTemplate

    在这个项目中,我们可以看到通过Spring MVC与JdbcTemplate结合,实现对数据的查询、删除、修改和添加等基本操作。 1. **JdbcTemplate介绍**: JdbcTemplate是Spring框架中的一个核心组件,主要用于简化数据库操作...

    Spring框架中jdbcTemplate 的使用.doc

    如果需要批量执行SQL语句,JdbcTemplate还提供了`batchUpdate()`方法,可以一次执行多个更新操作。 9. **性能优化**: JdbcTemplate通过缓存预编译的SQL语句(PreparedStatement),提高了性能,并且可以避免多次...

    Spring 中jdbcTemplate 实现执行多条sql语句示例

    在Spring框架中,JdbcTemplate是用于简化数据库操作的一个重要工具。它提供了执行SQL语句的能力,包括单条语句执行和批处理。本文将详细解释如何使用JdbcTemplate来执行多条SQL语句,以及其在事务管理中的作用。 ...

    jdbctemplatedemo.zip

    对于数据导入,项目可能会包含读取文件(例如CSV或XML)中的数据,然后使用JdbcTemplate批量插入到MySQL数据库。这通常涉及解析文件,创建数据行的列表,然后使用`batchUpdate`方法将这些行作为批处理语句执行。...

    JdbcTemplate的事务控制.docx

    在这个例子中,我们使用了`JdbcTemplate`的`batchUpdate`方法来进行批量更新操作,并且在调用该方法之前关闭了`Connection`对象的自动提交功能。如果在执行过程中发生了异常,比如主键冲突导致的插入失败,那么所有...

    JavaEE JdbcTemplate的简单示例

    JavaEE是企业级应用开发的重要框架,而Spring框架作为JavaEE的核心部分,提供了一系列的强大功能,其中JdbcTemplate是Spring提供的一个用于简化数据库操作的工具。本篇将详细讲解JdbcTemplate的简单示例,帮助开发者...

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    `JdbcTemplate`是Spring对JDBC API的一个轻量级包装,它通过提供一系列模板方法来处理常见的JDBC操作,如查询、更新、插入和删除数据。这样可以避免手动处理连接、事务和异常,降低了代码的复杂性。`JdbcTemplate`...

    spring整合mysql的一些基本操作

    例如批量插入: ```java String sql = "INSERT INTO table_name (column1, column2) VALUES (?, ?)"; List[]&gt; batchParams = new ArrayList(); // 填充batchParams int[] updateCounts = jdbcTemplate.batch...

    JdbcTemplate操作数据库实现添加功能

    除了基本的插入操作,`JdbcTemplate`还支持批量插入、查询、更新和删除等操作,同样通过简单的API调用即可完成。其优点在于代码简洁、易于维护,并且由于Spring的异常转换机制,可以将数据库异常转化为易于理解的...

    JdbcTemplate.jar

    - **update()**:用于执行更新、插入、删除等操作,返回受影响的行数。 - **execute()**:可以执行任意的SQL语句,如DDL操作。 五、最佳实践与注意事项 1. **避免硬编码SQL**:尽量使用PreparedStatement,提升...

    springstudy

    2. **批量插入.docx**:可能包含关于如何在Spring Batch或Spring JDBC中实现批量数据插入的教程或案例,这通常涉及到批处理策略和事务管理。 3. **Eclipse快捷键.docx**:Eclipse是常用的Java开发IDE,这份文档可能...

Global site tag (gtag.js) - Google Analytics