### SQL: insert into AIR.BLLS VALUES(?) ### Cause: dm.jdbc.driver.DMException: 违反引用约束[CONS134218903] ; 违反引用约束[CONS134218903]; nested exception is dm.jdbc.driver.DMException: 违反引用约束[CONS134218903]
时间: 2024-04-07 13:31:41 浏览: 174
这是一个 SQL 插入语句的错误提示。提示信息显示插入操作违反了一个引用约束,具体是约束 CONS134218903。引用约束是指当一个表中某个字段的值依赖于另一个表中的字段时,这两个表之间需要建立一个关系,并且需要在插入数据时遵循这个关系。
这个错误提示意味着在插入数据时违反了 CONS134218903 这个引用约束,可能是因为插入的数据涉及到了这个约束所涉及的字段。要解决这个问题,你需要检查插入的数据是否符合约束条件,并且确认约束是否正确设置。如果需要,可以修改约束或者修改插入的数据以符合约束条件。
相关问题
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "BTAT" (class com.isoft.entity.BLLS_DB.BLLS_DFLT_BLLS_BELT), not marked as ignorable (8 known properties: "BTSC", "BTNO", "ENED", "REND", "ID", "ESTR", "CODE", "RSTR"])
这个错误表示在使用 Jackson 序列化或反序列化对象时,发现了一个未知的属性 "BTAT",但是这个属性在类 com.isoft.entity.BLLS_DB.BLLS_DFLT_BLLS_BELT 中没有被标记为可忽略的。
这个错误的解决方法是要么在类中标记该属性为可忽略的,要么在序列化或反序列化时忽略该属性。具体实现方式取决于您的具体需求和代码实现。
DFOE_DFIE dfie = xmlAnaly.getDfie(file.getPath()); //插入到 数据库 insertDao.insertDfie(dfie.getMeta(), 3, 3, 3, 3, 3, 3, dfie.getDflt()); if (dfie.getDflt().getArpt() != null) { for (AIRL_ARPT airlArpt : dfie.getDflt().getArpt()) { insertDao.insertArpt(airlArpt, 3); System.out.println(airlArpt); } } if (dfie.getDflt().getGate() != null) { for (GTLS_GATE gate : dfie.getDflt().getGate()) { insertDao.insertGate(gate, 3); System.out.println(gate); } } if (dfie.getDflt().getBelt() != null) { for (BLLS_BELT bllsBelt : dfie.getDflt().getBelt()) { insertDao.insertBelt(bllsBelt, 3); } } if (dfie.getDflt().getCkls().getCntrList() != null) { for (CKLS_CNTR cklsCntr : dfie.getDflt().getCkls().getCntrList()) { insertDao.insertCntr(cklsCntr,3); System.out.println(cklsCntr); } } if (dfie.getDflt().getStnd()!=null){ for (STLS_STND stlsStnd : dfie.getDflt().getStnd()) { insertDao.insertStnd(stlsStnd,3); System.out.println(stlsStnd); } } if (dfie.getDflt().getSflt()!=null){ for (SFLG_SFLT sflgSflt : dfie.getDflt().getSflt()) { insertDao.insertSflt(sflgSflt,3); System.out.println(sflgSflt); } } //输出得到的信息 System.out.println(dfie); break; } log.info("创建文件"); 优化这段代码
优化这段代码可以考虑以下几个方面:
1. 将重复的代码提取成方法,减少代码冗余。
例如,将插入数据的代码封装成方法,可以减少代码重复。
2. 使用Lambda表达式或Stream API来简化代码。
例如,使用Lambda表达式来遍历集合,可以减少for循环的使用。
3. 将长的if语句拆分成多个短的if语句,提高代码可读性和可维护性。
4. 使用日志框架来代替System.out.println()输出信息,方便日志的管理和查看。
下面是一个简单的优化示例:
```
DFOE_DFIE dfie = xmlAnaly.getDfie(file.getPath());
insertDfie(dfie, insertDao);
insertArpt(dfie.getDflt().getArpt(), insertDao);
insertGate(dfie.getDflt().getGate(), insertDao);
insertBelt(dfie.getDflt().getBelt(), insertDao);
insertCntr(dfie.getDflt().getCkls().getCntrList(), insertDao);
insertStnd(dfie.getDflt().getStnd(), insertDao);
insertSflt(dfie.getDflt().getSflt(), insertDao);
log.info("创建文件");
// 插入dfie数据
private void insertDfie(DFOE_DFIE dfie, InsertDao insertDao) {
insertDao.insertDfie(dfie.getMeta(), 3, 3, 3, 3, 3, 3, dfie.getDflt());
}
// 插入arpt数据
private void insertArpt(List<AIRL_ARPT> arptList, InsertDao insertDao) {
if (arptList != null) {
arptList.forEach(arpt -> {
insertDao.insertArpt(arpt, 3);
log.info(arpt.toString());
});
}
}
// 插入gate数据
private void insertGate(List<GTLS_GATE> gateList, InsertDao insertDao) {
if (gateList != null) {
gateList.forEach(gate -> {
insertDao.insertGate(gate, 3);
log.info(gate.toString());
});
}
}
// 插入belt数据
private void insertBelt(List<BLLS_BELT> beltList, InsertDao insertDao) {
if (beltList != null) {
beltList.forEach(belt -> {
insertDao.insertBelt(belt, 3);
});
}
}
// 插入cntr数据
private void insertCntr(List<CKLS_CNTR> cntrList, InsertDao insertDao) {
if (cntrList != null) {
cntrList.forEach(cntr -> {
insertDao.insertCntr(cntr, 3);
log.info(cntr.toString());
});
}
}
// 插入stnd数据
private void insertStnd(List<STLS_STND> stndList, InsertDao insertDao) {
if (stndList != null) {
stndList.forEach(stnd -> {
insertDao.insertStnd(stnd, 3);
log.info(stnd.toString());
});
}
}
// 插入sflt数据
private void insertSflt(List<SFLG_SFLT> sfltList, InsertDao insertDao) {
if (sfltList != null) {
sfltList.forEach(sflt -> {
insertDao.insertSflt(sflt, 3);
log.info(sflt.toString());
});
}
}
```
阅读全文