【问题标题】:access database cannot execute SQL LIKE访问数据库无法执行 SQL LIKE
【发布时间】:2017-07-02 00:14:28
【问题描述】:

我无法从我的数据库中查询记录,并收到“UCAExc:::4.0.2 Invalid argument in JDBC call: parameter index out of range: 1”错误消息

这是如何引起的,我该如何解决?

    public void  query(){
    String name = name_tt.getText();
    DefaultTableModel model= new DefaultTableModel();
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(0, 283, 555, 212);
    contentPane.add(scrollPane);

    table = new JTable(model);
    scrollPane.setViewportView(table);
    model.addColumn("ID");
    model.addColumn("IDs");
    model.addColumn("Name");
    try
    {
        PreparedStatement pst = con.prepareStatement("SELECT * FROM TEST 
        WHERE IDs LIKE '?*' ");
        pst.setString(1, name);
        ResultSet rs = pst.executeQuery();
        while(rs.next())
        {
            model.addRow(new Object[]{rs.getInt(1),rs.getString(2),rs.getInt(3)});
        }

    }
    catch(Exception e){
        System.out.println(e.getMessage());

    };

} 

【问题讨论】:

    标签: java jdbc ucanaccess


    【解决方案1】:

    你需要做的

    PreparedStatement pst = con.prepareStatement("SELECT * FROM TEST WHERE IDs LIKE ?");
    pst.setString(1, name + "*");
    ResultSet rs = pst.executeQuery();
    

    这样,参数占位符? 是基本SQL 语句的一部分,而不是SQL 语句中字符串文字 的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多