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

时间:2014-02-18 12:47:40

标签: java sql prepared-statement sqlexception

尝试连接数据库时,我一直收到此错误。

这是我准备好的陈述

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();

任何人都知道我为什么会收到此错误?

2 个答案:

答案 0 :(得分:1)

我认为您的问题出在'和```符号中。你应该修改sql如下:

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

但是我不确定在?之后是否支持参数占位符from。所以,你可能不得不自己动手,例如:

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

答案 1 :(得分:0)

使用

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

如果您对参数进行硬编码,请不要使用`来嵌套参数,使用'来嵌套您要比较的值。

你不能用吗?指定表名。