MyBatis Batch Insert/Update For Oracle

后端 未结 3 1114
日久生厌
日久生厌 2020-11-29 00:40

I\'ve recently started learning to use myBatis.I am now facing such a scenario, I need to constantly fetch a new list of Objects through WebService, then for this list, I ne

3条回答
  •  無奈伤痛
    2020-11-29 01:24

    In my case also there is same scenario. I used for loop to check whether this record exists in databse or not and then according to that I added this object in to two arraylist for insert or update. And then used batch for insert and update after for loop for that to list.

    here is ex. for update according to different where condition

    1] this is for update

    
        UPDATE parties SET attending_user_count = #{model.attending_count}
        WHERE  fb_party_id = #{model.eid}  
    
    

    2] this is for insert

    
        INSERT INTO accountability_users 
            (
                accountability_user_id, accountability_id, to_username,
                record_status, created_by, created_at, updated_by, updated_at
            ) 
        VALUES
         
            (           
                #{model.accountabilityUserId}, #{model.accountabilityId}, #{model.toUsername}, 
                'A', #{model.createdBy}, #{model.createdAt}, #{model.updatedBy}, #{model.updatedAt}     
            )
        
    
    

    In dao method declare as

    void insertAccountabilityUsers(@Param("usersList") List usersList);
    

    Update

    Here is my batch session code

    public static synchronized SqlSession getSqlBatchSession() {
        ConnectionBuilderAction connection = new ConnectionBuilderAction();
        sf = connection.getConnection();
        SqlSession session = sf.openSession(ExecutorType.BATCH);
        return session;
    }
    
    SqlSession session = ConnectionBuilderAction.getSqlSession(); 
    

    Actually I already given full example here for this question

提交回复
热议问题