1. 程式人生 > >Spring批量更新JdbcTemplate.batchUpdate()

Spring批量更新JdbcTemplate.batchUpdate()

from:http://blog.csdn.net/shihuacai/article/details/11992355
public class BatchUpdate{
    JdbcTemplate jdbctemp; //JdbcTemplate的獲取不是我所講的範圍。 我們只管用spring得這一物件,
    public static void main(String[] args) {
        BatchUpdate bu = new BatchUpdate();
        List list = bu.storeList();
        bu.batchUpdateLinkset(list);
    }
    public List storeList(){
        List linkset = new ArrayList();
        linkset.setDOMAIN_ID("domain_idTeset");
        linkset.setNE_ID("ne_idTEST");
        linkset.setSIGLINKSET_NAME("SIGLINKSET_NAMEtest");
        linkset.setN_CONFIRM(0);
        linkset.setTIME_STAMP("2010-07-27 09:05:21");
        updatelist.add(linkset);
    }
   
    public void batchUpdateLinkset(final List list) {
        String sql = "update LINK_SET set N_CONFIRM=?,TIME_STAMP=?,DOMAIN_ID=?,SIGLINKSET_NAME=? where NE_ID=?";
        jdbctemp.batchUpdate(sql, new BatchPreparedStatementSetter() {
            public int getBatchSize() {
                return list.size();
                //這個方法設定更新記錄數,通常List裡面存放的都是我們要更新的,所以返回list.size();
            }
            public void setValues(PreparedStatement ps, int i)throws SQLException {
                Linkset linkset = (Linkset) list.get(i);
                ps.setString(1, linkset.getCHINA_NAME());
                ps.setString(2, linkset.getENGLISH_NAME());
                ps.setInt(3, linkset.getN_CONFIRM());
                ps.setString(4, linkset.getTIME_STAMP());
                ps.setInt(5, linkset.getDOMAIN_ID());
                ps.setString(6, linkset.getSIGLINKSET_NAME());
                ps.setString(7, linkset.getNE_ID());
            }
        });
    }
}
第二種寫法 
List glxxParams = new ArrayList();
        for(int i=0;i<glxxList.size();i++){
            Object glxxParam[]={
                    glid,
                    glxxList.getJSONObject(i).optString("jbxxID"),
                    glxxList.getJSONObject(i).optString("bz"),
            };
            glxxParams.add(glxxParam);
        }
        super.getJdbcTemplate().batchUpdate(sql_glxx,glxxParams);



相關推薦

Spring批量更新JdbcTemplate.batchUpdate()

from:http://blog.csdn.net/shihuacai/article/details/11992355public class BatchUpdate{ JdbcTemplate jdbctemp; //JdbcTemplate的獲取不是我所講的範

關於SpringJdbcTemplate批量更新batchUpdate()方法的返回值為-2的異常

近日在使用JdbcTemplate做大量的資料庫資料同步的工作,基本就是“從A庫查詢資料--生成CSV--解析成SQL插入B庫”這樣一個過程。因為使用的是JdbcTemplate,所以在將資料匯入B庫時採用的是“先批量刪,再批量插入”的策略。如果B庫有相同主鍵的記錄,則

Spring JDBCtemplate.batchupdate 批量跟新資料 例項

public class BatchUpdate{     JdbcTemplate jdbctemp; //JdbcTemplate的獲取不是我所講的範圍。我們只管用spring得這一物件,     public static void main(String[] arg

spring JdbcTemplate批量更新

  spring JdbcTemplate 的批量更新: 1、JdbcTemplate batchUpdate(new String[]{}); 一次執行多個sql語句; 2、 Java程式碼   final List tmpList = ....;   int co

Spring JdbcTemplate批量更新速度很慢的問題

由於一次要執行很多條插入語句(5w條),通常通過mysql寫原生的插入語句會有類似的格式: insert into TableAAA(f1,f2) values (f11v,f21v),(f12v,

spring jdbcTemplate批量更新資料

引入了spring框架之後,jdbcTemplate可以直接使用 將jdbcTemplate依賴注入 @Autowired     private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate

JdbcTemplate查詢與批量更新

1.定義 JdbcTemplate是將spring與jdbc進行了整合,可以簡化資料庫操作,相比Hibernate、Mybatis感覺配置少很多,用起來有點像springboot的JPA,但是會比它臃腫一些。 2.應用 2.1 配置 採用資料庫連線池 <bean id=

jdbcTemplate高效批量插入和批量更新 模擬原生jdbc批量10s插入10萬條到mysql

1.專案中親測一次性插入10萬條資料差不多用了10s,這時候只能使用原生jdbc,spring框架為我們薄薄的封裝了個jdbcTemplate 思路就是準備插入資料庫的分隔成1萬條(自己根據資料包或網路定具體數量),將sql拼成字串(減少mysql多次訪問的壓力,拿連線和mysql日誌生成的數量

jdbcTemplate.batchUpdate批量執行的時候,效能差沒有效果,看看怎麼解決的。

我用的阿里druid資料庫連線池(其實這個和連線池毛線關係沒得 ),建立jdbctemplate在執行insert 15000條資料時 ,我發現還是30條,20條,35條這樣提交。 完全沒有batch的效果。 檢視資料庫,5秒才267條。在等20秒看,才5130條。說明這個批

MyBatis批量更新報錯org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.bindin

需求描述:今天在專案中寫了一個批量更新的操作,dao層使用的是MyBatis框架。 錯誤資訊:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.bi

JdbcTemplate batchUpdate 批量操作加事務

JdbcTemplate batchUpdate 可以用來進行批量操作,但在中途某條資料出錯時如何處理? 加入spring事務,目前發現一種能通過spring程式設計式事務(基於TransactionTemplate 的事務管理)可以實現。 1.不帶返回型別 public void transfer(f

jdbcTemplate高效批量插入和批量更新

批量插入(資料量超一萬時建議分批次提交,每次一萬條) /** * 生成goodsIssue的幸運碼<大量資料一次性插入> * @param goodsIssue * @a

Spring Boot入門——JDBCTemplate使用及其相關問題解決

oca accounts abs method const error mas exist release 1、在pom.xml文件中引入相應依賴 <!-- mysql依賴 --> <dependency> <

批量更新

data- art length 數據庫 con text blog 技術 net 項目中進行產品升級。數據庫有所變化,為了升級曾經的產品,在一個一個寫update腳本,最後發現是有規律的。!。。。還是應該多思考。差點就的多些好幾行啊 update ep

mysql 批量更新語句

sql enum line new when title class 批量更新 語句 UPDATE `表名` SET `字段` = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHE

JDBC高級特性(一)結果集,批量更新

事務 必須 -h eth mark cep tro cancel 相對定位 一、ResultSet的高級特性 1 可滾動ResultSet 1)向前和向後滾動 滾動特性 在JDBC初期版本號中, ResultSet僅能向前滾動 在JDBC興許版本號中,

C#批量更新mongodb符合條件的數據

div pda 第一條 匹配 upd lag god 批量更新 mongo 默認情況下只會更新匹配的第一條 jingjiaanalyurl.Update(Query.EQ("auid", jingjiaitem.id), Update.Set("aurlname",

SqlBulkCopy批量更新數據庫表用例

conn batch map nsa 更新數據 efault copy mapping using using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(da.Connection as SqlConnection, SqlBu

MySql 批量更新語法

舉例 rom info round ber ner from sql數據庫 yam mysql數據庫在批量更新某表的字段時,語法如下: UPDATE A AS aINNER JOIN ( SELECT * FROMA WHERE....) AS b ON a.order

批量更新數據問題

file field 技術分享 query 循環數組 sql 簡寫 div 更新 同事最近遇到一個需要根據索引字段更新狀態數據的需求,而這個處理邏輯是循環查詢單條更新解決 主要代碼如下(簡寫): <?php foreach($array as $v) { q