Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn dữ liệu vào nhiều bảng với Spring jdbcTemplate

Bạn có thể sử dụng câu lệnh multilane và LAST_INSERT_ID() Hàm MySql:

String sql = "insert into role(name, code) values(?,?);" +
    "insert into person(first_name, last_name, description, role_id) values(?,?,?,(SELECT LAST_INSERT_ID()));";

int[] arr = template.batchUpdate(sql, new BatchPreparedStatementSetter() {

    @Override
    public void setValues(PreparedStatement ps, int i) throws SQLException {
        Role role = roles.get(i);
        Person person = list.get(i);
        ps.setObject(1, role.getName());
        ps.setObject(2, role.getCode();
        ps.setObject(3, person.getFirstName());
        ps.setObject(4, person.getLastName());
        ps.setObject(5, person.getDescription());
    }

    @Override
    public int getBatchSize() {
        return list.size()
    }
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ::Chọn từ chuỗi được phân tách bằng dấu phẩy

  2. Cấu hình của MySQL 8

  3. Xóa tất cả các ký tự không phải số khỏi một trường

  4. mysql CHỈ chọn bản ghi trùng lặp từ cơ sở dữ liệu

  5. Hàm FIELD của Doctrine 2 theo thứ tự