Java实现 调用JdbcTemplate.batchUpdate方法批量更新

来源:互联网 发布:java整型转换成字符串 编辑:程序博客网 时间:2024/06/06 01:40
1、准备参数
private List<Object[]> preparParam(IDataList ret) {
    // 准备入参
    List<Object[]> paramList = new ArrayList<>();
    for (int i = 0i < ret.size()i++) {
        IData detail = ret.getData(i);
        String[] arr = new String[6];
        arr[0] = detail.getString("orderDetailId");
        arr[1] = detail.getString("clientId");
        arr[2] = detail.getString("foodId");
        arr[3] = detail.getString("foodName");
        arr[4] = detail.getString("pictureUrl");
        arr[5] = detail.getString("num");
        paramList.add(arr);
    }
    return paramList;
}
2、调用Dao层方法
private void insertIntoTempTable(IData paramIDataList ret) throws Exception {
    if(Common.isNull(param.getString("clientId"))) {
        throw new CustomException("餐机ID不可为空");
    }
    if(ret.size() <= 0) {
        throw new CustomException("本餐机没有您可取的餐品");
    }
    // 根据param的餐机ID,删除本餐机的正在出货记录
    orderDao.deleteByClientId(param);
    // 插入本次的正在出货记录
    orderDao.insertShipment(preparParam(ret));
}
3、Dao层方法实现
public void insertShipment(List<Object[]> params) {
    String sql = "INSERT INTO mp_client_shipment (\n+
            "\torder_detail_id,\n+
            "\tclient_id,\n+
            "\tfood_id,\n+
            "\tfood_name,\n+
            "\turl,\n+
            "\tnum,\n+
            "\tcreated\n+
            ")\n+
            "VALUES\n+
            "\t(?,?,?,?,?,?,now())";
    jdbcTemplate.batchUpdate(sqlparams);
}