-4

当我试图找到一个代码来帮助我获得“get”这个词的多个结果时,我遇到了 mysql 数据库的问题。当我搜索数据库时,我只找到一个建议。这是我得到的

输入要搜索的词_______________:得到

考虑这个替代方案____________:访问(例如,您可以访问一些最好的律师)

但是我还有其他关于“get”这个词也很重要的条目,可以在这里作为替代词的词是 7。那么我可以在 Java 中做些什么来解决这个问题呢?我有一个名为 Grammarchecker 的表和一个名为 wrongwords 的列,而另一个是 rightwords。

如何用 Java 编写代码?我看过一些关于散列字典、正则表达式匹配和数组模式匹配的视频,但是正则表达式不能在 mysql 数据库上的 JAVA 中完成。其次,当涉及到 Mysql 数据库时,散列主要是在文本文件上完成的。是否有可能在java中使用这种函数获得“get”这个词的多个结果:rs.next()

因为我不知道如何从 mysql 数据库中散列字典。我只是想要一个解决方案。

我的问题是通过java中的扫描仪从Mysql数据库中获得不同单词的多个答案。不只是为了得到这个词!

4

1 回答 1

0

我将您的问题解释为给定用户提供的单词,您想wrongwords在 table 中查找该单词grammarchecker,并获取所有相关联的rightwords. 这可能看起来像这样:

List<String> findAlternativeWords(String userWord, Connection conn) throws SQLException {
    List<String> words = new ArrayList<String>();
    PreparedStatement ps = conn.prepareStatement(
            "select rightwords from gammarchecker where wrongwords = ?");

    try {
        ResultSet results;

        ps.setString(1, userWord);
        results = ps.executeQuery();

        while (results.next()) {
            words.add(results.getString(1));
        }
    } finally {
        ps.close();
    }

    return words;
}

这假设您已经有一个打开的数据库连接,您将传递给该方法。请注意,我建议在PreparedStatement这里,而不是直接在字符串中构建 SQL 语句,因为必须非常小心地处理用户提供的数据。否则,您(在这种情况下)将面临 SQL 注入攻击。通过准备好的语句参数插入用户的单词可以保护您免受这种情况的影响。

于 2015-09-25T21:57:30.513 回答