使用变量的Java Derby SQL查询语句

时间:2014-02-06 12:54:47

标签: java sql derby sql-like

    String val = searchText.getText();

    System.out.println(val);
    System.out.println(tmp);
    if (tmp == "properShippingName") {
        try {

            String sql = "SELECT SDS_NUMBER, PRODUCT_NAME, PROPER_SHIPPING_NAME FROM APP.MASTER WHERE PROPER_SHIPPING_NAME LIKE ?";
            pst = conn.prepareStatement(sql);

            pst.setString(1, val);
            rs = pst.executeQuery();
            // System.out.println("rs");

            jTable1.setModel(DbUtils.resultSetToTableModel(rs));

        } catch (Exception e) {
            e.printStackTrace(System.out);
            JOptionPane.showMessageDialog(null, e);
        }

我的第一个问题是我想使用%val%运行查询。我希望查询返回任何接近用户输入到“searchText”文本字段的内容。我似乎无法弄清楚如何让它识别变量并仍然执行LIKE约束。

非常感谢任何帮助!

我对同一主题有第二个问题,但问题略有不同,所以我会发布另一个帖子。

1 个答案:

答案 0 :(得分:1)

您必须在setString方法调用中包含百分比。

pst.setString(1, "%" + val + "%");

现在,like语句适用于这个通配符。