-1
我一直在多次运行此代码,并且java一直抛出java.sql.SQLException参数索引超出范围(1>参数数量为0),I认为它错误的SELECT * FROM CARD
查询,我在这里做错了什么?为什么java抛出参数索引超出范围SQLerror
@EventHandler
public void onJoin(PlayerJoinEvent event){
Player player = event.getPlayer();
openConnection();
try{
PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Cards` WHERE `UUID`=?;");
sql.setString(1, player.getUniqueId().toString());
ResultSet rs = sql.executeQuery();
if(!rs.next()){
PreparedStatement sql1 = connection.prepareStatement("INSET INTO `Cards` (`UUID`, `username`, `name`, `race`, `tribe`, `gender`, age`, `desc`, `channel`, `ooc`) VALUES(?,?,?,?,?,?,?,?,?,?);");
sql1.setString(1, player.getUniqueId().toString());
sql1.setString(2, player.getName());
sql1.setString(3, "NONE");
sql1.setString(4, "NONE");
sql1.setString(5, "NONE");
sql1.setString(6, "NONE");
sql1.setString(7, "0");
sql1.setString(8, "NONE");
sql1.setString(9, "RP");
sql1.setString(10, "1");
sql1.execute();
sql1.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
closeConnection();
}
}
*其中*是否抛出异常?您有两条SQL语句 - 其中只有一条可能与此处相关。你不应该“认为它出错” - 你应该有一个堆栈跟踪。你应该能够编写一个方法,以最简单的方式证明这一点 - 鉴于我们需要一个模式,它不太可能是一个简短但完整的程序,但你至少可以把它钉在比你更少的位置这里。 – 2014-10-03 08:03:29
下一个问题:INSET!= INSERT。 – 2014-10-03 08:03:48
你不读取你的ResultSet ... – Benvorth 2014-10-03 08:06:06