为什么java将参数索引抛出SQLerror范围之外
我已经多次运行了这段代码,java不断将java.sql.SQLException参数索引抛出范围之外(1>参数数量,即0),我认为它在SELECT*FROM为什么java将参数索引抛出SQLerror范围之外,java,mysql,sql,bukkit,sqlexception,Java,Mysql,Sql,Bukkit,Sqlexception,我已经多次运行了这段代码,java不断将java.sql.SQLException参数索引抛出范围之外(1>参数数量,即0),我认为它在SELECT*FROM卡查询中出现错误,我在这里做错了什么 @EventHandler public void onJoin(PlayerJoinEvent event){ Player player = event.getPlayer(); openConnection(); try{ PreparedStatement
卡
查询中出现错误,我在这里做错了什么
@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();
}
}
age
上缺少引号?它在哪里引发异常?您有两条SQL语句,其中只有一条可能与此相关。你不应该“认为它有漏洞”——你应该有一个堆栈跟踪。您应该能够编写一个方法,以最简单的方式演示这一点-鉴于我们需要一个模式,它不太可能是一个简短但完整的程序,但您至少可以比这里更进一步地确定它。下一个问题:INSET!=INSERT。您没有读取结果集…问题是INSERT的拼写错误,现已修复,我使用结果集检查用户是否已存在rs.next();把那些不必要的引语全部去掉怎么样
(`UUID`, `username`, `name`, `race`, `tribe`, `gender`, age`, `desc`, `channel