【发布时间】:2018-08-23 10:37:11
【问题描述】:
假设我有一张桌子
+----------------+-----------------------+---------------------+
| colID | colTitle | colKeywords |
+----------------+-----------------------+---------------------+
| 1 | Jumanji | comedy adventure |
| 2 | Moana | adventure animation |
| 3 | Shawshank Redemption | drama tearjerker |
| 4 | Avengers | action |
+----------------+-----------------------+---------------------+
+-----------------------------+ +---------+
Search: | adventure and action movies | |button GO|
+-----------------------------+ +---------+
我想要做的是,如果我在文本字段中输入“冒险和动作电影”,并且在我点击按钮后,表格视图中的结果应该是:
Jumanji
Moana
Avengers
我想使用 Like 子句来实现这一点。到目前为止,尝试了很多示例并提出了问题,但似乎没有任何效果。
我在写作时使用的代码:
@FXML
private void goSearch(ActionEvent event) throws IOException, SQLException{
String sql = "SELECT * FROM table_entry WHERE colKeywords LIKE ? ";
conn = SqlConnection.ConnectDB();
pst=conn.prepareStatement(sql);
String criteria = txt_search.getText();
if (criteria.trim().length() == 0) { return; }
List<String> results = new ArrayList<>();
String[] arryCriterion = criteria.split(" ");
for (int i = 0; i < arryCriterion.length; i++) {
String criterion = "%" + arryCriterion[i] + "%";
pst.setString(1, criterion);
rs = pst.executeQuery();
while (rs.next()) {
results.add(rs.getString("colKeywords"));
}
}
table_title.setItems(results);
}
为 sedrick 编辑:
String word = txt_search.getText();
String sql = "SELECT * FROM table WHERE colKeywords LIKE '%word%'";
我这样做对吗?如果文本字段中有多个单词怎么办?
【问题讨论】:
-
哪个部分不工作?
-
hi isaace,如果我按下按钮,tableview 什么也不显示。而是在系统中显示错误。不过,我首先应该做什么..我很抱歉..你能指导我吗?我能够从数据库中填充表格视图。但是我无法使用 like 子句过滤表。对不起我的英语
-
这样做的方法是添加一个
Keyword表和一个link表。Link表将colID映射到keywordID。
标签: java mysql sql javafx sql-like