请在这里指导!
我想在我的数据库中插入一些值,来自java 我有我的oracle预备语句和东西,它插入确定,但我的其他要求是通过电子邮件发送由于某种原因没有插入的字段。
所以,我正在考虑将我的方法设为int并返回0,如果它是错误1,如果它可以,2如果某些字段没有插入...等等...但是
我迷失了如何绑定它,我的意思是如果java中的sql中的catch有错误我可以像
catch (SQLException e) {// TODO Auto-generated catch block
e.printStackTrace();
return result = 0;
显然我可以把错误信息放在我称之为的地方,但我怎么知道哪个项目停止然后检索其余未插入的字段......
任何想法?有人有例子吗?
提前致谢
答案 0 :(得分:1)
首先尝试在Java中进行尽可能多的验证,并在将错误记录保存在数据库中之前识别错误记录,您可以在它们命中数据库并发送电子邮件之前捕获这些记录。
如果您担心数据库级问题,例如反对等,然后你需要选择性能与Flexibile功能
选项1:不要一次使用批量插入一条记录,无论您发送电子邮件失败,从性能角度来看这都是不好的,但会解决您的目的
选项2:将您的记录划分为50或100批次,无论批次失败,您都可以报告整个批次失败,这也会报告一些好记录,但您将获得有关未持久保存的信息。
选项3:将您的记录分成批次,如果批次失败尝试一次为该特定批次保存一条记录,那么您将能够识别不良记录和性能的方式将被优化,这将需要更多的编码和测试
所以,你可以选择适合自己的东西,但我建议你这样做:
干杯!!
答案 1 :(得分:0)
如果有插入,则插入语句中包含的所有字段;或者,没有。因此,如果在运行语句时抛出异常,那么您将发送一封电子邮件。
如果没有抛出任何异常,那么你会认为它已经有效。
或者,在运行插入后,您可以尝试执行选择以检查您插入的数据是否实际存在。
答案 2 :(得分:0)
如果语句失败,则不会插入任何字段,因为oracle在内部进行回滚以保持数据的一致性。