我创建了一个简单的应用程序,使用户可以购买门票。 但是,每当我尝试购买“ n”张门票时,都会遇到此错误。 现在,我知道在使用数据库进行操作时需要crs.next()语句,我已经使用了很多次,但是由于某种原因,它在这里不起作用。 它给了我java.sql.SQLException:无效的光标位置错误。
这是我插入票证的代码段。
public void buyTicket(int id,int n,int price) throws SQLException{
crs.setCommand("SELECT PAYID FROM PAYMENTINFO WHERE ACCOUNT = '"+2134541+"'");
crs.execute();
crs.next();
payID = crs.getInt("PAYID");
for(int i=0;i
crs.setCommand("Insert into Tickets (TicketType,EventID,UserID,PayID,Price) values ("+false+","+id+
","+ loginBean.getuID() + ","+payID+","+price+")");
crs.execute();
crs.next();
}
crs.setCommand("UPDATE EVENTS SET MAXTICKETS = MAXTICKETS - "+n+"WHERE EVENTID = "+eb.getEventID());
crs.execute();
crs.next();
}
内出现该问题的for loop .The payID设置和使用payID我尝试插入票表。 如果在crs.next()语句上放置断点, crs.next()输入数据。 没有它,它给了我例外。 谢谢您的帮助
CRS初始化
CachedRowSet crs = RowSetProvider.newFactory()。createCachedRowSet();
crs.setUrl("jdbc:derby://localhost:1527/Events Ticket Management");
crs.setUsername("x");
crs.setPassword("x");
更新
将INSERT语句放在try-catch块中之后,票证被输入到数据库中,但是更新现在崩溃了,给出了java.lang.NullPointerException 。