java sql SQLException:参数索引超出范围(1>参数数量,为0)

问题描述:

尝试连接到数据库时,我不断收到此错误。java sql SQLException:参数索引超出范围(1>参数数量,为0)

这是我事先准备好的声明

String SQL = "SELECT * FROM `?` WHERE `HomeTeam` = '?'"; 
     PreparedStatement prepst;    

     prepst = con.prepareStatement(SQL); 
     prepst.setString(1,box1.getSelectedItem().toString()); 
     prepst.setString(2,box1.getSelectedItem().toString()); 
     rs = prepst.executeQuery(); 

谁知道为什么我得到这个错误?

我认为你的问题是在'和```符号。你应该可以解决SQL作为follwing:

String SQL = "SELECT * FROM ? WHERE HomeTeam = ?";

但是我不知道该参数占位符?from后支持。所以,想必你将不得不自己所说的那样,如:

String table = box1.getSelectedItem().toString(); 
String SQL = "SELECT * FROM " + table + " WHERE HomeTeam = ?"; 

使用

String SQL = "SELECT * FROM ? WHERE HomeTeam = ?"; 

不要使用`窝参数,使用'窝重视你对,如果你硬编码比较它们。

你不能使用?指定一个表名。

+0

好吧,我已经试过了,现在我得到一个MySQL的语法错误,尽管SQL语句的作品时,我手动试了一下数据库 – user3139748

+0

你可以在没用?指定一个表名 – david99world