批量操作
~~~
@Resource(name = "sqlSessionDao")
private Dao dao;
//批量插入
List<TfNList> list = new ArrayList();
TfNList n1 = new TfNList();
n1.setListId("111");
n1.setListName("测试");
list.add(n1);
TfNList n2 = new TfNList();
n2.setListId("112");
n2.setListName("测试2");
list.add(n2);
dao.insertBatch(list);
//批量插入另一种写法
dao.insertBatch(new ArrayList(){{
add(new TfNList(){{
setListId("111");
setListName("测试");
}});
add(new TfNList(){{
setListId("112");
setListName("测试2");
}});
}});
//批量更新
List<TfNList> list = new ArrayList();
TfNList n1 = new TfNList();
n1.setListId("111").asCondition();
n1.setListName("测试");
list.add(n1);
TfNList n2 = new TfNList();
n2.setListId("112").asCondition();
n2.setListName("测试2");
list.add(n2);
dao.updateBatch(list);
//批量更新另一种写法
dao.updateBatch(new ArrayList(){{
add(new TfNList(){{
setListId("111").asCondition();;
setListName("测试");
}});
add(new TfNList(){{
setListId("112").asCondition();;
setListName("测试2");
}});
}});
//设置条件时,调用每个实体类asCondition()方法是一种方式,还有另外一种方法,可指定条件列,方法定义如下:
updateBatch(List<? extends BaseEntity> list, String... conditionColumns);
//用法如下
dao.updateBatch(list, "LIST_ID", "CUST_TYPE");
//批量删除
List<TfNList> list = new ArrayList();
TfNList n1 = new TfNList();
n1.setListId("111").asCondition();
list.add(n1);
TfNList n2 = new TfNList();
n2.setListId("112").asCondition();
list.add(n2);
dao.deleteBatch(list);
//批量删除另一种写法
dao.deleteBatch(new ArrayList(){{
add(new TfNList(){{
setListId("111").asCondition();;
}});
add(new TfNList(){{
setListId("112").asCondition();;
}});
}});
//技巧:此种写法目的是减少遍历次数,某些值可不用事先设置,在BatchEachHandler里进行处理即可,insertBatch内部循环时会回调BatchEachHandler
dao.insertBatch(list, new BatchEachHandler<TfNList>(){
@Override public void onEach(TfNList n){
n.setCreateTime(new Date());
}
});
//另外也可自定义sql进行批量处理
void executeBatch(String statementId, List<?> list);
void executeBatch(String statementId, List<?> list, BatchEachHandler batchEachHandler);
~~~
- walk简介
- 核心模块
- walk-data
- IData
- EntityHelper
- walk-cache
- 缓存管理器
- 缓存对象
- 缓存注解
- walk-batis
- 单表操作
- 批量操作
- 列表/分页查询
- 所有方法列表
- sql热部署
- 二级缓存
- 数据库方言
- 其他使用技巧
- 实体类生成工具
- walk-mq
- 队列管理器
- 队列对象
- 订阅/发布管理器
- 订阅器
- 发布器
- walk-shiro
- 用户认证/授权
- url动态授权/回收
- 分布式会话
- 无状态会话支持
- walk-base
- 前端基础框架
- 公共页面
- 自定义标签
- 自定义函数
- 组件及工具
- 后端基础框架
- 基础结构
- 表单校验
- 数据导入
- 数据导出
- 上传下载
- 静态参数加载器
- 静态参数翻译器
- 实体类翻译器
- sql翻译器
- 自定义翻译器
- 静态参数校验器
- 分布式任务
- 增删改查代码生成器
- walk-restful
- 请求报文
- 返回报文
- 节点翻译器
- api代码生成
- walk-activiti
- 接口封装
- 模型管理
- 流程图展示
- 集成方法
- walk-console
- 在线会话管理
- 静态参数表缓存管理
- 缓存管理
- 队列管理
- 发布/订阅管理
- walk-boot
- 常用功能
- 持久层操作
- 分布式缓存
- 分布式会话
- 分布式任务
- 前端常用功能
- 后端常用功能
- 工作流封装
- 多数据源支持
- 关于读写分离
- 常用工具类
- 代码生成工具
- SpringCloud集成
- 阿里edas平台支持
- 其他
- 开发规约
- 环境要求
- 工程示例
- 工程结构
- web工程
- API工程
- 后台任务
- 常见问题
- 事务不生效
- 分布式任务不生效
- 事务锁
- 变更历史