我需要创建一个在表中插入或不插入数据的条件。有11个字段,从6到11,用户可以填写,也可以不填写。如果没有,它就不能保存此表中的任何数据。代码已创建,但正在进行插入。有人知道怎么修理吗?谢谢!
try {
PreparedStatement ps_SOFVDISN = connection.prepareStatement(SQL_INSERT_SOFVDISN);
for (BeanItem beanItem : beanItemLista) {
ps_SOFVDISN.setString(1, beanItem.getChaveSolicitacao().getCodEstb());
ps_SOFVDISN.setString(2, beanItem.getChaveSolicitacao().getCodPedi());
ps_SOFVDISN.setString(3, beanItem.getChaveSolicitacao().getNumSolcServ());
ps_SOFVDISN.setString(4, beanItem.getItemSs().getNumItemSs()); // NUM_ITEM
ps_SOFVDISN.setString(5, " ");
ps_SOFVDISN.setString(6, beanItem.getNotaFiscalRef().getSerNfRef());
ps_SOFVDISN.setString(7, beanItem.getNotaFiscalRef().getNumNfRef());
ps_SOFVDISN.setString(8, "");
ps_SOFVDISN.setString(9, "");
ps_SOFVDISN.setString(10, beanItem.getNotaFiscalRef().getCgcEstbRef());
ps_SOFVDISN.setString(11, beanItem.getNotaFiscalRef().getQtdUsadaReferencia());
if (beanItem.getNotaFiscalRef().getSerNfRef() != null && !beanItem.getNotaFiscalRef().getSerNfRef().trim().equals("")
|| beanItem.getNotaFiscalRef().getNumNfRef() != null && !beanItem.getNotaFiscalRef().getNumNfRef().trim().equals("")
|| beanItem.getNotaFiscalRef().getCgcEstbRef() != null && !beanItem.getNotaFiscalRef().getCgcEstbRef().trim().equals("")
|| beanItem.getNotaFiscalRef().getQtdUsadaReferencia() != null &&
!beanItem.getNotaFiscalRef().getQtdUsadaReferencia().trim().equals("") && !beanItem.getNotaFiscalRef().getQtdUsadaReferencia().equals(" "))
{
if (ps_SOFVDISN.executeUpdate() == 1) {
System.out.println("Sucess - Insert ok");
retornoResult = true;
}
}
除了添加null约束之外,您还可以使用三元运算符来检查这些字段是否为null或空,然后再设置它们。
ps_sofvdisn.setString(6,!BeanItem.GetNotaFiscalRef().GetSerNfref().IsEmpty()?BeanItem.GetNotaFiscalRef().GetSerNfref():“”);
那么在数据库中为用户必须定义的列添加not null约束呢?
问题内容: 我在形成条件插入时遇到困难 我有x_table的列(实例,用户,项目),其中实例ID是唯一的。我只想在用户已经没有给定项目的情况下插入新行。 例如,尝试插入instance = 919191 user = 123 item = 456 朝正确方向的任何帮助或指导将不胜感激。 问题答案: 如果您的DBMS在执行插入操作时不限制从哪个表中选择,请尝试: 在这里,是一个只有一行的表(最初在O
问题内容: 如何停止MySQL中的竞争条件?当前的问题是由一个简单的算法引起的: 从表中选择一行 如果不存在,将其插入 然后会得到重复的行,或者如果您通过唯一/主键阻止它,则会出现错误。 现在,通常我认为事务在这里有所帮助,但是由于该行不存在,所以事务实际上并没有帮助(或者我是否错过了什么?)。 LOCK TABLE听起来有些矫kill过正,尤其是如果该表每秒更新多次。 我唯一想到的其他解决方案是
问题内容: 是否有只查询记录的查询,如果不存在,则插入?我不想重复更新或替换。寻找一个查询解决方案,寻找其他答案,但不是我真正想要的。 表: 伪查询: 问题答案: 使用-与INSERT完全相同,不同之处在于,如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前会删除该旧行。 http://dev.mysql.com/doc/refman/5.0/en/rep
我正在做一个在集群环境中运行的项目,那里有许多节点和一个数据库。该项目使用Spring-data-JPA(1.9.0)和Hibernate(5.0.1)。我有问题解决如何防止重复行问题。 举个例子,这里有一个简单的表 重要的部分是有一个约束。 当然,匹配示例存储库: 本例的思想是,系统的某些部分可以插入行,以便为周期性运行的内容进行调度,在所述运行之间可以进行任意次数的调度。当某个东西实际运行时,
我知道jOOQ将在不支持它的系统(如PostgreSQL)上模拟SQLMERGE。 我有一个带有串行(自动增量)id列和字符串uri列的表。我想在我的数据库中使用数字ID而不是URI,所以我必须确保在ID查找表中有一个URI。因此,按照jOOQ手册中的示例,我认为这将起作用: 这给了我一个这样的语句: 但是日志说jOOQ继续并尝试用绑定值执行查询。但是该表从未更新。所以我猜jOOQ没有在Postg
问题内容: 乍看之下,这个问题似乎很容易,但我只是没有找到合理的解决方案。 考虑具有以下特征的表: 每天,都会生成N个新行,用于表示将来的日期,并且“名称”来自有限列表。我想在有新数据时插入新行,但是如果已经有一个包含“名称”和“日期”的行,只需对其进行更新。 请注意,目前提出的检查条件的SPROC解决方案是不可行的,因为这是从另一种语言推送的数据。 问题答案: 那是为了什么 手册页面在这里。 诀