mybatis中实现批量的增删改

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011955252/article/details/83037999
//批量插入
public void batchInsert(List<UserDo> list) {
    this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
        public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
            executor.startBatch();

            for (UserDo parameterObject : list) {
                executor.insert("MS-INSERT", parameterObject);
            }
            executor.executeBatch();
            return null;
        }
    });
}


public void batchInsertUserDoList(List<String> userNameList) {
    this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
        public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
            executor.startBatch();

            for (String str : userNameList) {
                UserDo userDo = new UserDo();
                userDo.setUserName(str);
                executor.insert("MS-INSERT"", userDo);
            }
            executor.executeBatch();
            return null;
        }

    });

}
MS-INSERT 表示单条插入
/**
 * 批量更新
 */
@Override
public void batchUpdate(List<UserDo> list) {
    this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
        public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
            executor.startBatch();

            for (UserDo parameterObject : list) {
                executor.update("MS-UPDATE", parameterObject);
            }
            executor.executeBatch();
            return null;
        }

    });
}
MS-UPDATE 表示单条更新的sql

public void batchDeleteUserList(List<String> ids) {

    this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
        public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
            executor.startBatch();

            for (String str : ids) {
                Map param = new HashMap();

                param.put("id", str);
                executor.delete("MS-DELETE", param);
            }
            executor.executeBatch();
            return null;
        }

    });

}
MS-DELET 表示单条删除
如何在业务层使用,需要是spring 的事务中使用

TransactionTemplate.execute(new TransactionCallback<String>() {

    @Override
    public String doInTransaction(TransactionStatus status) {
    批量代码调用
}
}

猜你喜欢

转载自blog.csdn.net/u011955252/article/details/83037999