码迷,mamicode.com
首页 > 数据库 > 详细

Spring BatchSqlUpdate.updateByNamedParam例子

时间:2019-12-19 21:14:46      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:param   char   lte   date()   date   count   sql   table   for   

关键在于定义参数和sql语句,代码如下:

int dstColCount=dstColNamesList.size();
String insSql="insert into "+tableName+"("+dstTableInsColSql+")  values("+dstTableInsValueSql+")";
BatchSqlUpdate bsu=new BatchSqlUpdate();
bsu.setDataSource(jdbcService.getJdbcTempalte().getDataSource());
bsu.setSql(insSql);
bsu.setBatchSize(1000);
for (int i = 0; i < dstColCount; i++) {
    SqlParameter sp=new SqlParameter(dstColNamesList.get(i),java.sql.Types.VARCHAR);
    bsu.declareParameter(sp);
}
// 生成插入到当前数据库的有关脚本
while (srcRecords.next()) {                
    for (int i = 0; i < dstColCount; i++) {
        paramsMap.put(dstColNamesList.get(i), srcRecords.getString(srcColNamesList.get(i)));
    }
    bsu.updateByNamedParam(paramsMap);
}
1)SqlParameter有多种构造函数,具体可以看官方文档
2)由于是命名参数,所以sql的参数必须定义为 冒号+名称,例如:name,:sex.
3)SqlParameter中参数的名称必须和sql中的对应
4)updateByNamedParam中Map的key名称必须和 sql中参数名称对应
效率上尚未深入测试,有机会做个测试看看!

Spring BatchSqlUpdate.updateByNamedParam例子

标签:param   char   lte   date()   date   count   sql   table   for   

原文地址:https://www.cnblogs.com/lzfhope/p/12069758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!