zoukankan      html  css  js  c++  java
  • spring JdbcTemplate批量插入以及单个插入时获取id

    1. 批量更新插入

    jdbcTemplate.batchUpdate(String sql, List<Object[]> batchArgs)

    Object[]数组的长度为每条记录的参数个数(也就是sql语句中"?"的个数)

    List: 总共插入多少条记录。

    /**
     * 批量插入订单详情
     * 
     */
    public void addBatch(List<OrderDetail> orderDetails) {
        List<Object[]> params = new ArrayList<>();
        for(OrderDetail orderDetail : orderDetails) {
            params.add(new Object[]{orderDetail.getProductName(), orderDetail.getProductPrice(),
                    orderDetail.getProductCount(), orderDetail.getParentid()});
        }
        final String sql = "insert into order_detail(pro_name,pro_price,pro_count,parent_id) values(?,?,?,?)";
        jdbcTemplate.batchUpdate(sql, params);
        
    }
    

    2. 单条记录插入获取主键id

    /**
     *  插入并获取主键
     */
    public int addAndGetId(Order order) {
        final String sql = "insert into orders(name, address,createtime,totalprice,status) values(?,?,?,?,?)";
        KeyHolder keyHolder = new GeneratedKeyHolder();
        jdbcTemplate.update(new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
                PreparedStatement ps  = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
                ps.setObject(1, order.getName());
                ps.setObject(2, order.getAddress());
                ps.setObject(3, order.getCreateTime());
                ps.setObject(4, order.getTotalPrice());
                ps.setObject(5, order.getStatus());
                return ps;
            }
        }, keyHolder);
        return keyHolder.getKey().intValue();
    }
    

      

      

  • 相关阅读:
    JetBrains全家桶破解-Golang-Pycharm-IDEA等-不分平台
    k8s node update kernel
    k8s 图解
    k8s孤儿卷的问题
    k8s相关工作中常用命令
    AMQ死信引发宕机的问题
    StackStorm简介之actions
    DRF 使用入门
    python装饰器的简单实用
    type和object的关系
  • 原文地址:https://www.cnblogs.com/wt20/p/7260737.html
Copyright © 2011-2022 走看看