如何检查我是否从java插入db

时间:2013-09-05 17:38:47

标签: java sql database oracle error-handling

请在这里指导!

我想在我的数据库中插入一些值,来自java 我有我的oracle预备语句和东西,它插入确定,但我的其他要求是通过电子邮件发送由于某种原因没有插入的字段。

所以,我正在考虑将我的方法设为int并返回0,如果它是错误1,如果它可以,2如果某些字段没有插入...等等...但是

我迷失了如何绑定它,我的意思是如果java中的sql中的catch有错误我可以像

catch (SQLException e) {// TODO Auto-generated catch block 
            e.printStackTrace();
            return result = 0;

显然我可以把错误信息放在我称之为的地方,但我怎么知道哪个项目停止然后检索其余未插入的字段......

任何想法?有人有例子吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

首先尝试在Java中进行尽可能多的验证,并在将错误记录保存在数据库中之前识别错误记录,您可以在它们命中数据库并发送电子邮件之前捕获这些记录。

如果您担心数据库级问题,例如反对等,然后你需要选择性能与Flexibile功能

选项1:不要一次使用批量插入一条记录,无论您发送电子邮件失败,从性能角度来看这都是不好的,但会解决您的目的

选项2:将您的记录划分为50或100批次,无论批次失败,您都可以报告整个批次失败,这也会报告一些好记录,但您将获得有关未持久保存的信息。

选项3:将您的记录分成批次,如果批次失败尝试一次为该特定批次保存一条记录,那么您将能够识别不良记录和性能的方式将被优化,这将需要更多的编码和测试

所以,你可以选择适合自己的东西,但我建议你这样做:

  1. 在Java中执行最大验证
  2. 拆分成较小的批次并使用选项3。
  3. 干杯!!

答案 1 :(得分:0)

如果有插入,则插入语句中包含的所有字段;或者,没有。因此,如果在运行语句时抛出异常,那么您将发送一封电子邮件。

如果没有抛出任何异常,那么你会认为它已经有效。

或者,在运行插入后,您可以尝试执行选择以检查您插入的数据是否实际存在。

答案 2 :(得分:0)

如果语句失败,则不会插入任何字段,因为oracle在内部进行回滚以保持数据的一致性。

相关问题