java search-从字符串preparedstatement

时间:2016-07-12 12:45:43

标签: java sql postgresql jdbc

我有这个Java代码,我希望能够在YEAR中搜索intTextField}并显示一个表格。如何在prepareStatement中实现它?我需要解析吗?

try
    {
        connection = DBConnect.getConnection();


        //int filmyear = Integer.parseInt(txtSearch.getText());

        statement = connection.prepareStatement("SELECT filmtitle, filmyear, filmgenre, companyname FROM production, film, company  WHERE (LOWER(filmtitle) like LOWER (?) OR "
        + "LOWER (filmgenre) like LOWER (?) OR filmyear = ?)and production.companyid = company.companyid AND production.filmid = film.filmid");

        statement.setString(1, "%" +txtSearch.getText()+"%");
        statement.setString(2, "%" +txtSearch.getText()+"%");
    //  statement.setInt(3, +txtSearch.getText());


        resultSet = statement.executeQuery(); 
         table.setModel(DbUtils.resultSetToTableModel(resultSet));

    }catch(SQLException e)
    {
        e.printStackTrace();
    }

正如你所看到我试图创建另一个statement.setInt(3, +txtSearch.getText());,我怀疑这是错误的。

filmtitlefilmgenrefilmyear位于同一张表中。

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

我想你已经尝试过了。它应该工作正常。

int filmyear = Integer.parseInt(txtSearch.getText());

然后

statement.setInt(3, filmyear);

答案 1 :(得分:0)

我认为你可以将电影年份作为字符串搜索,它可以给你一个合适的结果。

statement.setString(3,+ txtSearch.getText());