为什么java将参数索引抛出SQLerror范围之外

为什么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

我已经多次运行了这段代码,java不断将java.sql.SQLException参数索引抛出范围之外(1>参数数量,即0),我认为它在SELECT*FROM
查询中出现错误,我在这里做错了什么

@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