String OrderSelect = "select * from Order where USER_ID=? ";
ConnManage.openTransaction();
ConnManage.commit();
//执行OrderSelect语句
PreparedStatement pst = con.prepareStatement(OrderSelect);
pst.setInt(1, USER_ID);
ResultSet rs = pst.executeQuery();
List list = new ArrayList();
OrderVo odv;
while(rs.next()){ odv = new OrderVo(); odv.setOrder_id(rs.getInt(1));
odv.setOrder_state(rs.getString(2));
odv.setOrder_send_per(rs.getString(3)); ... list.add(odv);
return list
}
我写的代码现在出现这个问题,就是
while(rs.next()){这里的东西不会执行,我测试过了。然后list里面也是空。
我看不出来代码有什么问题,请教各位。
我的SQL语句在数据库中式正常的,可以查询到结果。USER_ID也是可以取到的。
ConnManage.openTransaction();
ConnManage.commit();
//执行OrderSelect语句
PreparedStatement pst = con.prepareStatement(OrderSelect);
pst.setInt(1, USER_ID);
ResultSet rs = pst.executeQuery();
List list = new ArrayList();
OrderVo odv;
while(rs.next()){ odv = new OrderVo(); odv.setOrder_id(rs.getInt(1));
odv.setOrder_state(rs.getString(2));
odv.setOrder_send_per(rs.getString(3)); ... list.add(odv);
return list
}
我写的代码现在出现这个问题,就是
while(rs.next()){这里的东西不会执行,我测试过了。然后list里面也是空。
我看不出来代码有什么问题,请教各位。
我的SQL语句在数据库中式正常的,可以查询到结果。USER_ID也是可以取到的。
2.不知道楼主这是啥,是自己封装的jdbc还是什么hibernate之类的东东
3.如果是自己封装的jdbc,用上事务的话要设置Connection的自动提交为false,另外看代码的样子好像楼主刚开启了事务就提交了,而后面的ps执行查询却是在事务提交之后,这个地方很有问题。如果楼主自己封装了jdbc,那建议先尝试下设置Connection的自动提交为false,再把后面几步对数据库的操作放在事务开启之后,提交之前。
ConnManage.openTransaction();
//执行OrderSelect语句
PreparedStatement pst = con.prepareStatement(OrderSelect);
pst.setInt(1, USER_ID);
ResultSet rs = pst.executeQuery();
ConnManage.commit();
List list = new ArrayList();
OrderVo odv; while(rs.next()){ odv = new OrderVo(); odv.setOrder_id(rs.getInt(1));
odv.setOrder_state(rs.getString(2));
odv.setOrder_send_per(rs.getString(3)); ... list.add(odv);
return list
}