我有这个Java代码,我希望能够在YEAR
中搜索int
(TextField
}并显示一个表格。如何在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());
,我怀疑这是错误的。
filmtitle
,filmgenre
和filmyear
位于同一张表中。
感谢任何帮助
答案 0 :(得分:1)
我想你已经尝试过了。它应该工作正常。
int filmyear = Integer.parseInt(txtSearch.getText());
然后
statement.setInt(3, filmyear);
答案 1 :(得分:0)
我认为你可以将电影年份作为字符串搜索,它可以给你一个合适的结果。
statement.setString(3,+ txtSearch.getText());