双while循环里,mybatis的selectOne查询数据库不起作用
背景:
查询X表中某字段status的值,该值可取范围为 0,1,4,5。
0表示准备执行,1表示执行成功,4表示正在执行, 5表示执行失败。
首先进入第1个while循环更新该值为0,然后status的值开始变化,若该值为0或者4则进入第2个while循环一直取
status值,若status的值为1或者5跳出第2个while循环。
代码如下:
String status = null ;
int i = 1;
while(!"1".equalsIgnoreCase(status)) {
System.out.println("开始第" + i + "次更新");
i++;
session.update(statement2, regsno);
session.commit();
status = session.selectOne(statement1, regsno);
System.out.println("初始化status: " + status);
while("0".equalsIgnoreCase(status) || "4".equalsIgnoreCase(status)) {
status = session.selectOne(statement1, regsno);
System.out.println("status的值: " + status);
}
}
采用log4j输出mybatis的sql语句。
Debug时,当程序进入第2个while循环之后,单步执行,控制台输出
初始化status: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
status的值: 0
问题:第2个while循环中mybatis的selectOne方法为什么没有运行。