java - 过滤 mysql 数据以在 JTable 中显示时参数索引超出范围

标签 java mysql jdbc

美好的一天

我正在尝试将数据从数据库检索到 jTable 中。当用户在文本字段中写入所需数据时,它会将其显示在表格中。

我得到的是

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

这是我的代码

try {
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hr","root","MZaa8891@");
    String Sql="Select recName,phoneNo,quali,major,Uni,status,IntDate,interviewer  from rect "; 
    ps= con.prepareStatement(Sql);
    ps.setString(1, jTextField1.getText());
    rs =ps.executeQuery();
    DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
    model.setRowCount(0);

    while(rs.next()){
        Object obj [] = {
            rs.getString("recName"),
            rs.getString("phoneNo"),
            rs.getString("quali"),
            rs.getString("major"),
            rs.getString("Uni"),
            rs.getString("status"),
            rs.getDate("IntDate"),
            rs.getString("interviewer")
        };
            model.addRow(obj);
    }        
} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
}

有什么想法吗?

最佳答案

您在 where 子句中遗漏了一些参数:

Query: Select recName,phoneNo,quali,major,Uni,status,IntDate,interviewer from rect where something = ?

String Sql="Select recName,phoneNo,quali,major,Uni,status,IntDate,interviewer  from rect where something = ?"; 
ps= con.prepareStatement(Sql);
ps.setString(1, jTextField1.getText());
rs =ps.executeQuery();

关于java - 过滤 mysql 数据以在 JTable 中显示时参数索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810431/

相关文章:

java - 从java在mysql中创建一个数据库

java - 如何在 Java 中构造 oracle.sql.ANYDATA 并将其传递到 PL/SQL 过程中

java - Spring引导多个jndi连接

java - 用索引迭代 IntStream

java - BindException/在负载下使用 HttpClient 时打开的文件过多

Mysql的启动和停止

java - 使用类似 'Select * from some_table where some condition' 的查询从数据库创建 Pdf

mysql - Dateadd 函数转换纪元时间

c# - Entity Framework 6 中使用 Mysql 的自定义迁移操作

java - 使用 JDBC 时拒绝访问数据库