首页 > 解决方案 > 从 IntelliJ Ultimate 2018.2.5 访问 MySQL 服务器

问题描述

我正在尝试使用 IntelliJ Ultimate 2018.2.5 在 Windows 10 机器上使用 Java JSP、Tomcat 9 和 MySQL 服务器编写 Web 应用程序。问题是我ClassNotFoundException在运行以下代码行时总是得到:Class.forName("com.mysql.jdbc.Driver");

我遵循了有关如何连接到 SQL 服务器的官方文档:https ://www.jetbrains.com/help/datagrip/2017.1/getting-started-with-datagrip.html

查看->工具窗口->数据库->+->数据源->MySQL。

这是我的配置截图: 在此处输入图像描述

请注意:我故意没有指定数据库,因为我的程序不能假定数据库已经存在。它必须先检查并创建它,如果没有。由于程序永远无法连接到服务器,因此数据库从未创建过,因此不存在。我担心这可能是问题的根源,但按下“测试连接”会导致连接成功(如屏幕截图所示)。

经过一番谷歌搜索,我手动下载了 mysql-connector-java-8.0.13 并将 jar 文件放入 IntelliJ 安装目录的库部分。然后我去 File->Project Structure->Libraries->+ 并选择了连接器。结果如下: 在此处输入图像描述

IntelliJ 现在确实在外部库下列出了连接器。

然而,问题仍然存在。

请记住,我是 IntelliJ 的新手,而且我几乎没有使用 Java 数据库的经验。我通常为此使用 C++。

更新 1:对于什么样的项目:新建项目->Java Enterprise->Web 应用程序(选择 Java 11、Tomcat 9.0.12 和 4.0 版)。除了项目名称和位置之外,其余的只是标准设置。

标签: javamysqlintellij-ideadatabase-connection

解决方案


我发现了问题。就像我的问题的评论者正确指出的那样,View->Tools Window->Database->+->Data Source->MySQL 与问题无关。

首先,您必须将连接器添加为库。我最终添加了两次,一次是作为 Java 库,一次是作为 maven 库。但如果你尝试一下,任何一个都足够了。

诀窍是,您还必须将其添加为工件。就我而言,这是在问题下指出的。IntelliJ 还提出为我添加。我不知道的是,问题是从一开始就指出这一点,还是仅在尝试运行程序失败后才指出这一点。无论如何,可以通过在 Files->Project->Structure->Artifacts 下的 Artifacts 类别中添加数据库连接器来解决问题。


推荐阅读