Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на данни в множество таблици с пружинен jdbcTemplate

Можете да използвате многолентови изрази и LAST_INSERT_ID() 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. COALESCE() за празни (но не нулеви) полета

  2. Кеширане в JDBC

  3. Yii2 и съхраняване на данни в базата данни като UTC

  4. Най-добрата практика на bulk_create за масивни записи

  5. Какво е MySQL Workbench?