java.sql.SQLIntegrityConstraintViolationException:ORA-00001:违反了唯一约束(ONESPEKS.SAM_SENARAI_SEMAK_PK)

时间:2015-12-30 04:31:02

标签: java oracle

我正在使用JSP,Java spring将用户的数据插入到数据库中。 PK由数据库自动生成。用户输入的数据将插入到数据网格中,用户将单击“保存”,然后将所有数据(多行/列表)传输到数据库中。

public List<SamSenaraiSemak> saveSenaraiSemak(List<SamSenaraiSemak> semak) {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    String insertSQL = "INSERT INTO SAM_SENARAI_SEMAK "
        + "(SAM_JENISURUSNIAGA_PKID,KOD,PERIHAL,ID_SIMPAN,TKH_SIMPAN,ID_SAH_SIMPAN,TKH_SAH_SIMPAN,KOD_STATUS_TRANSAKSI_PKID,STATUSFL)"
        + "VALUES (?,?,?,?,?,?,?,?,?)";

    jdbcTemplate.batchUpdate(insertSQL, new BatchPreparedStatementSetter() {

        @Override
        public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
            try {
                SamSenaraiSemak sam = semak.get(i);

                preparedStatement.setLong(1, sam.getJenis_urusniaga() != null ? sam.getJenis_urusniaga() : 0);
                preparedStatement.setString(2, sam.getKod() != null ? sam.getKod() : "");
                preparedStatement.setString(3, sam.getPerihal() != null ? sam.getPerihal() : "");
                preparedStatement.setLong(4, sam.getIdSimpan() != null ? sam.getIdSimpan() : 0);
                preparedStatement.setDate(5, sam.getTarikhSimpan());
                preparedStatement.setLong(6, sam.getIdSahsimpan() != null ? sam.getIdSahsimpan() : 0);
                preparedStatement.setDate(7, sam.getTarikhSahsimpan());
                preparedStatement.setLong(8, sam.getKodStatusTransaksiPkid() != null ? sam.getKodStatusTransaksiPkid() : 0);
                preparedStatement.setInt(9, sam.getStatusFL() != 0 ? sam.getStatusFL() : 0);
            } catch(Exception e) {
                System.out.println(e.getMessage());
            }
        }

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

    return semak;
}

和主键(自动生成的)是数据库中的第1列。 SAM_JENISURUSNIAGA_PKID是第2列。

0 个答案:

没有答案