`

spring jdbcTemplate 实现批量更新操作接口使用

阅读更多
批量更新操作使用如下代码:
public int[] updatePerson(final String[] ids)
	{
		String sql ="update person set address=? where id=?";
		BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter(){
			public void setValues(PreparedStatement ps,int i) throws SQLException{
	           ps.setString(1, "benling.l@gmail.com");
	           ps.setInt(2, Integer.parseInt(ids[i]));
	          }
	          public int getBatchSize(){
	             return ids.length;
	          }
		};
		return this.getJdbcTemplate().batchUpdate(sql, setter);
	}

第二种方法:重载PreparedStatementCreator,请看代码:
public void insertUsers(User ur)
	{
		 this.getJdbcTemplate().update(new PreparedStatementCreator()
		{
			public PreparedStatement createPreparedStatement(Connection con) throws SQLException
			{
				String sql = "insert into user (name,age) values(?,?)";
				PreparedStatement ps = con.prepareStatement(sql);
				ps.setString(1,"");
				ps.setInt(2,0);
				return ps;
			}
		});
	}

第三种方法:直接使用SQL
jdbcTemplate.update("insert into user (name,age) "+"values (' " + name + " ',  " +age +")");
分享到:
评论
2 楼 benlsoft 2008-12-03  
执行插入操作时返回值是void,无返回值类型。
1 楼 junjieshow 2008-12-01  
public void importDBOnThread() {
try {
String insertSql = "insert into attendance_record"
+ "(ic_sign_id,xxcode,xcode,sign_time,auto_flag,class_no,nj_c,late_flag)"
+ "(select i.autoid,j.xxcode,j.xcode,i.sign_time,'1',j.class_no,j.nj_c,"
+ "(select count(d.id) from dm_attendance_time d "
+ "where i.sign_time between convert(datetime ,SUBSTRING(convert(char,i.sign_time,21),0,12)+ convert(char,starttime,108))"
+ "AND convert(datetime ,SUBSTRING(convert(char,i.sign_time,21),0,12)+ convert(char,endtime,108))"
+ "and d.nj_c like '%'+j.nj_c+'%' and d.late_flag='1')"
+ "from dbo.iccard_sign_record i,nf.dbo.x_jbqk j "
+ "where  j.xxcode=I.xxcode and j.ic_no=I.card_id "
+ "and i.autoid>(isnull((select max(ic_sign_id) from attendance_record),0)))";
System.out.println(insertSql);
System.out.println("maxrows:"+jdbcTemplate.getMaxRows());
int i = jdbcTemplate.update(insertSql);
System.out.println(i);
} catch (Exception e) {
e.printStackTrace();
}
}

同样的流程 只不过是我的sql语句长一些 在这里sql语句没有问题 单纯的在数据库 能够执行插入,这里jdbcTemplate也没有问题 因为这个类里其他方法调用jdbcTemplate.queryForList(sql)就能执行查询 但是为什么单纯的插入跟更新就没有反应呢?也不报错!

相关推荐

    SpringJdbcTemplate封装工具类

    在描述中提到的“规范model格式接口”,可能是指创建一套标准的数据访问接口,这些接口定义了CRUD(Create、Read、Update、Delete)操作,并由SpringJdbcTemplate实现具体的数据库交互逻辑。这样做的好处是解耦了...

    Spring JdbcTemplate api

    当需要进行批量更新操作时,`JdbcTemplate`提供了`batchUpdate`方法,开发者需要创建自己的`BatchPreparedStatementCreator`和`BatchPreparedStatementSetter`类来处理批量参数的设置。通过`getJdbcTemplate().batch...

    SSH笔记-Spring JdbcTemplate

    3. **结果集处理**:对于查询操作,JdbcTemplate可以将结果集映射到Java对象,这通常通过实现RowMapper接口或使用BeanPropertyRowMapper类来完成。RowMapper允许自定义对象映射逻辑,而BeanPropertyRowMapper则会...

    JdbcTemplate的批量方法使用

    在Java的JDBC编程中,`JdbcTemplate`是Spring框架提供的一个强大且便捷的工具,用于简化数据库操作。它提供了一系列方法,包括批量处理SQL语句,极大地提高了开发效率并减少了错误的可能性。在这个场景中,我们将...

    jdbcTemplate分页彻底解决,使用游标滚动

    在Java的Spring框架中,JdbcTemplate是一个非常重要的组件,它为数据库操作提供了简便的模板方法。在处理大量数据时,传统的分页方式可能会导致内存溢出,这时可以使用游标滚动来实现高效的分页。本篇文章将深入探讨...

    Spring--JdbcTemplate.pdf

    它是对Java标准数据库编程接口JDBC的一种封装,旨在简化JDBC编程,减少样板代码,使得开发者在使用Spring框架时能够更便捷地对数据库进行操作。JdbcTemplate是Spring中常用的持久层技术之一,它支持Spring的声明式...

    一个简单的spring-jdbctemplate扩展

    使用JdbcTemplate扩展,开发者可以创建自定义的DAO接口,这些接口定义了特定的数据库操作,然后在实现类中利用JdbcTemplate提供的模板方法来完成这些操作。例如,可能会有一个`UserDao`接口,其中包含`getUserById`...

    Spring框架实现Excel批量导入数据

    以上就是使用Spring框架实现Excel批量导入数据的基本步骤。通过这种方式,可以极大地提高数据录入的效率,降低手动操作的工作量,尤其适用于需要频繁处理大量数据的业务场景。在实际项目中,可以根据具体需求进行...

    Spring JdbcDaoSupport 批量插入数据

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

    jdbcTemplate的jar包.rar

    本压缩包“jdbcTemplate的jar包.rar”包含了使用Spring的JdbcTemplate所需的五个核心库文件,这些库文件是实现JdbcTemplate功能的基础。 首先,JDBC(Java Database Connectivity)是Java与数据库交互的标准API,它...

    springBoot+springBatch批量处理数据demo

    在这个示例中,可能有一个名为`MyItemReader`的类,它实现了`ItemReader`接口,并使用JdbcTemplate从数据库中读取记录。ItemProcessor则可以对读取到的数据进行转换或处理,比如`MyItemProcessor`类。最后,...

    JavaEE JdbcTemplate的简单示例

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

    JdbcTemplate.jar

    总结,Spring的JdbcTemplate提供了强大的数据库操作支持,通过其丰富的API和强大的异常处理机制,使得开发者能够更加高效、安全地进行数据库操作,极大地提升了开发效率。熟练掌握和运用JdbcTemplate,对于提升项目...

    Spring中文帮助文档

    11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动...

    JdbcTemplate,自己封装的jdbc小框架

    为了解决这个问题,开发者常常会使用一些框架来简化这些操作,比如Spring的JdbcTemplate。本项目则基于这一思想,创建了一个自定义的JdbcTemplate小框架,旨在提供更简洁、高效的数据库操作方式。 自封装的...

    JDBCTemplate.zip

    6. **批量操作**:JDBCTemplate提供`batchUpdate()`方法,可以执行批量的SQL更新语句,提高效率。 7. **性能优化**:JDBCTemplate允许设置执行超时时间、重试次数等,增强了系统的健壮性。 在实际使用中,首先需要...

    spring整合mysql的一些基本操作

    9. **批量更新**:当需要对大量数据进行相同操作时,可使用`batchUpdate`。例如批量插入: ```java String sql = "INSERT INTO table_name (column1, column2) VALUES (?, ?)"; List[]> batchParams = new ...

    spring_JDBC整合包

    此外,Spring JDBC也支持存储过程的调用,以及批量更新操作。在处理大量数据时,还可以通过分页查询来优化性能。在分布式环境下,Spring JDBC配合Spring的事务管理功能,可以实现跨数据库操作的事务一致性。 这个...

    jdbcTemplate集锦很好的推荐

    - **批量操作**:支持批量插入、更新或删除数据。 - **复杂查询**:对于复杂的查询需求,`jdbcTemplate`提供了灵活的方法来处理。 - **事务管理**:配合Spring的事务管理功能,可以方便地实现数据库操作的原子性。 ...

    Spring+JDBC实例

    在Spring框架中,JDBC操作被封装在`org.springframework.jdbc.core.JdbcTemplate`类中,它提供了一种简洁、异常安全的方式来执行SQL查询和更新。JdbcTemplate通过模板方法模式简化了事务管理、异常处理和结果集的...

Global site tag (gtag.js) - Google Analytics