我有一个带有日期分区的配置单元表 emp ,我希望每次插入时都覆盖该分区。
我正在使用JDBC batchUpdate和配置单元的插入覆盖。
问题是,每当我使用插入的每次迭代下面的格式插入多个项目时,都会覆盖先前的插入。
jdbcTemplate.batchUpdate("INSERT OVERWRITE table emp partition(datestamp = ?) values (?,?)",
new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, date);
ps.setString(2, emp.get(i).getEmp_id());
ps.setString(3, emp.get(i).getName());
}
public int getBatchSize() {
return emp.size();
}
});
插入覆盖将起作用,并且如果插入语句的结构如下所示,并且所有值排成一行,则我可以插入多行:
INSERT OVERWRITE table emp partition(datestamp = ?) values(?, ?),(?, ?);
但是,我不知道使用JDBC batchUpdate实现此目的的最简单方法。欢迎任何帮助或建议。谢谢!