jfinal的批处理方法
程序员文章站
2022-06-14 19:44:43
...
1. batch批处理
- 1.1 public static int[] batch(List sqlList, int batchSize)
说明:1. sqlList是sql语句的集合。
例子:
public void demo(int empId,Integer[] priIds) {
List<String> sqlList = new ArrayList<String>();
sqlList.add(0, "DELETE FROM t_scenic_employee_privilege WHERE employeeId="+empId);
for (int priId : priIds) {
sqlList.add("INSERT INTO t_scenic_employee_privilege(employeeId,privilegeId) VALUES("+empId+","+priId+")");
}
Db.batch(sqlList, priIds.length+1);
}
- 1.2 public static int[] batch(String sql, String columns, List modelOrRecordList, int batchSize)
说明:
1. sql 参数是指 insert into 或者 update 语句,动态参数使用问号占位,例如:String sql = "insert into user(name, cash) values(?, ?)";上面这个 sql 其中要插入 name、cash 两个字段,而 values中用了两个问号,这两个问号中的值从后续的 modelOrRecordList 中获取
2. columns 是指前面 sql 中问号占位的地方的参数名称,jfinal 在填充字段值的时候会根据这个名称去 modelOrRecordList 中去取数据
3. modelOrRecordList 是指 List < User > 或者 List < Record> 或者这种列表
4. batchSize 是指多少条数据写一次数据库
- 1.3 public static int[] batch(String sql, Object[][] paras, int batchSize)
Db.batch("INSERT INTO tableName(roleId,privilegeId) VALUES(?,?)", params, params.length)
说明:1.paras是插入的二维数组值