【问题标题】:Hashing a dictionary from mysql database从mysql数据库散列字典
【发布时间】:2015-12-23 19:20:11
【问题描述】:

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

输入要搜索的单词_______________:获取

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

但是当涉及到“get”这个词时,我还有其他重要的条目,并且可以作为替代词的词是 7。那么我可以在 Java 中做些什么来解决这个问题呢?我有一个名为 Grammarchecker 的表,以及一个名为 wrongwords 的列,而另一个是 rightwords。

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

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

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

【问题讨论】:

  • 哈希与这样的问题到底有什么关系?您的意思是“索引”吗?
  • 我的问题是从 Mysql 数据库中为通过 java 中的扫描仪输入的任何单词获得多个答案。
  • 这听起来像是一个最好在数据库中解决的问题,而不是在 Java 中。不过,无论哪种方式,都不清楚如何识别您要检索的结果。
  • 我想输入任何单词进行检查,然后通过从第二列的数据库中检索它们来提供不同的建议
  • 为了获得多个结果,您需要执行一个将返回多个结果(行)的查询。你在执行这样的查询吗?

标签: java mysql arrays dictionary string-hashing


【解决方案1】:

我将您的问题解释为给定用户提供的单词,您想在表grammarcheckerwrongwords 中查找该单词,并获取所有关联的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 注入攻击。通过准备好的语句参数插入用户的单词可以保护您免受这种情况的影响。

【讨论】:

  • 请给我一分钟检查代码是否可以工作。
  • 好的。本节说: List findAlternativeWords ;预期,而不是声明。我已经用你的替换了我与数据库的连接代码,我该怎么办?
  • 我没有提供数据库连接代码。我提供的代码假设您已经有一个连接,您将提供该连接作为方法参数。此外,我无法就如何将我提供的方法合并到您的代码中的细节向您提供建议,因为这取决于您的代码。如果你不准备自己做一些工作,那么我建议你利用编辑器的“撤消”功能,忘记你曾经问过的问题。
  • 代码不工作。你有完整的代码,所以我可以缩进它吗?
  • 谢谢。我会尽量编辑它。我只是一个初学者
猜你喜欢
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2016-08-01
  • 2012-07-22
  • 2013-04-15
  • 2018-10-27
相关资源
最近更新 更多