小弟执行一段程序,中间网络中断了,等恢复以后发现有的数据库动作执行了两次,有的动作没有执行,程序的基本结构如下
try {
new connection;
m,n声明两个类似于容器的变量,用于储存需要做动作的内容
for () {
list1.add(m);
if (条件) {
n.动作1
}
}
list.动作2
connection.commit();}catch() {
exception();
}finally{
connection.close;
connection=null;
}
结果是动作1执行了两遍,动作2没有执行,程序并没有报异常
请教各位大虾,这类情况发生是跟数据库的机制有关系或者JVM的机制有关系还是什么其他原因,如何避免累死这种情况的发生,我的程序改如何优化?
不知道各位懂我写的东西了没!
哦 对了 我用的数据库是oracle
小弟在线等!
try {
new connection;
m,n声明两个类似于容器的变量,用于储存需要做动作的内容
for () {
list1.add(m);
if (条件) {
n.动作1
}
}
list.动作2
connection.commit();}catch() {
exception();
}finally{
connection.close;
connection=null;
}
结果是动作1执行了两遍,动作2没有执行,程序并没有报异常
请教各位大虾,这类情况发生是跟数据库的机制有关系或者JVM的机制有关系还是什么其他原因,如何避免累死这种情况的发生,我的程序改如何优化?
不知道各位懂我写的东西了没!
哦 对了 我用的数据库是oracle
小弟在线等!
说不定你那个for就是2次 所以动作1执行了2次