Spring
中批量执行
SQL
语句
批量执行的
SQL
语句有两种:
1、
格式相同,即
SQL
语句涉及到的字段名、个数和顺序都相同;
2、
格式不同,即
SQL
语句涉及到的字段名、个数不同。
一、
针对相同的
SQL
语句执行批量操作
SQL
语句如下所示,我将批量插入数据:
List<
STUDENT
> dtoList;
//
这里面存的是即将插入到
student
表中的数据
String kpfbSql =
"Insert Into
STUDENT(ID,NAME,AGE) Values (?,?,?)"
;
BatchPreparedStatementSetter
setter =
new
BatchPreparedStatementSetter() {
public
void
setValues(PreparedStatement ps,
int
i)
throws
SQLException {
//
给
SQL
语句的参数赋值
JXKP_KP_FBDTO dto = dtoList.get(i);
ps.setString(1, dto.getID());
ps.setString(2, dto.getNAME());
ps.setString(3,
dto.getAGE());
}
public
int
getBatchSize() {
return
dtoList.size();
}
};
int
[] i =
this
.getJdbcTemplate().batchUpdate(kpfbSql,
setter);
注:
int
[] i
中存放的是执行每条
SQL
语句时返回的成功条数的数组。因此,如果有插入失败的情况,
数组
i
中将会存在
0
这个值。给问号赋值的过程在方法内部完成。
二、
针对不同的
SQL
语句执行批量操作
SQL
语句如下所示,我将执行的是删除表中对应的数据:
//
更新学生表中
ID
信息
String idSql =
"Update STUDENT set ID ='"
+ id +
"'"
;
//
更新学生的语文成绩
String ywcjSql =
"Update STUDENT set YWCJ ='60' Where ID='
"
+ id +
"'"
;
//
更新学生的数学成绩
String sxcjSql =
"Update STUDENT set SXCJ ='80' Where ID='"
+ id +
"'"
;
//
更新学生的英语成绩
String yycjSql =
"Update STUDENT set YYCJ ='20' Where ID='"
+ id +
"'"
;
String[] sql =
new
String[]{idSql, ywcjSql,
sxcjSql, yycjSql};
int
[] i =
this
.getJdbcTemplate().batchUpdate(sql);
注:
int
[] i
中存放的是执行每条
SQL
语句时返回的成功条数的数组。
SQL
语句必须是完整
SQL
语句,无法在后续处理中传值。
以上方法全由作者亲测,成功后上传,如有问题,请给我留言
分享到:
相关推荐
本篇文章主要介绍了Spring 中jdbcTemplate 实现执行多条sql语句示例,可以对多个表执行多个sql语句,有兴趣的可以了解一下。
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 ...
分页插件的原理是通过在 SQL 语句中添加分页参数来实现的。 11. MyBatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式? MyBatis 将 sql 执行结果封装为目标对象并返回,通过使用 resultMap 来...
#{}是用于将参数传递给SQL语句,${}是用于将参数传递给SQL语句,并且可以将参数作为SQL语句的一部分。 7. 当实体类中的属性名和表中的字段名不一样,怎么办?可以使用MyBatis的TypeHandler机制来解决这个问题。 8. ...
11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 ...
3. MyBatis框架的缺点:(1)学习成本高、需要掌握SQL语句和Mapper文件配置、需要在Mapper文件中编写SQL语句等。 4. MyBatis框架适用场合:(1)大型项目中需要复杂的数据库交互、需要高效的数据库访问、需要灵活的...
春天数据bean Spring数据的Ebean实现。... 使用JDBC简单语句(不是PreparedStatement)执行查询 根据主键删除单个实体 为什么选择 我选择考虑的框架条件: 该框架应包含(而不是隐藏)我们正在使用SQ
MyBatis动态sql可以动态生成sql语句来实现灵活的数据库交互。 Spring框架 * Spring是什么?Spring是一个基于Java的开源框架,提供了企业级应用开发的解决方案。 * Spring的优点:灵活、可扩展、高效、易于使用等。...
特性支持Struct和数据库表之间的灵活映射,并支持自动同步事务支持,支持嵌套事务(支持类JAVA Spring的事务传播机制)同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用Id,In,Where,Limit,...
基于SSH2图书管理系统升级版(源码+运行截图+演示视频).zip ...2 执行php_db.sql语句创建数据库 3 导入项目,运行项目,这是一个前后端不分离的项目,前端采用JSP,将项目放在Tomcat容器中即可运行
12、如何执行批量插入? 13、如何获取自动生成的(主)键值? 14、在 mapper 中如何传递多个参数? 15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql? 16、Xml 映射文件中,除了常见的 select|insert|updae...
5.1.1 用于非查询SQL语句的SqlMap API 82 5.1.2 非查询已映射语句 83 5.2 插入数据 84 5.2.1 使用内联参数映射 84 5.2.2 使用外部参数映射 85 5.2.3 自动生成的键 86 5.3 更新和删除数据 88 5.3.1 处理并发更新 88 ...
Java面试题74:sql语句优化小技巧 Java面试题75:批量插入几百万条数据 Java面试题76:有没有使用过redis Java面试题77:redis的使用场景 Java面试题78:redis存储对象的方式 Java面试题79:redis数据淘汰机制 Java...
│ Java面试题74:sql语句优化小技巧.mp4 │ Java面试题75:批量插入几百万条数据.mp4 │ Java面试题76:有没有使用过redis.mp4 │ Java面试题77:redis的使用场景.mp4 │ Java面试题78:redis存储对象的方式.mp4 │...
32、SQL语句执行顺序 51 33、null的含义 52 34、mysql分页 52 35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...