java - 从 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 版)。除了项目名称和位置之外,其余的只是标准设置。
解决方案
我发现了问题。就像我的问题的评论者正确指出的那样,View->Tools Window->Database->+->Data Source->MySQL 与问题无关。
首先,您必须将连接器添加为库。我最终添加了两次,一次是作为 Java 库,一次是作为 maven 库。但如果你尝试一下,任何一个都足够了。
诀窍是,您还必须将其添加为工件。就我而言,这是在问题下指出的。IntelliJ 还提出为我添加。我不知道的是,问题是从一开始就指出这一点,还是仅在尝试运行程序失败后才指出这一点。无论如何,可以通过在 Files->Project->Structure->Artifacts 下的 Artifacts 类别中添加数据库连接器来解决问题。
推荐阅读
- php - Uncaught SyntaxError: Unexpected token < 错误信息
- list - 为什么我的序言谓词仅适用于其列表中的偶数个元素?
- javascript - 再次单击按钮时如何将javascript效果反转回显示:无?
- mysql - MySQL | 错误 - 唯一索引必须包括表的分区函数中的所有列
- c - 无损压缩算法在位级别上工作吗?
- r-markdown - 在 R markdown 中嵌入 Tableau 仪表板
- php - 根据用户的角色类型登录到特定页面后的地址用户
- python-3.x - 如何在每 5 行后从列中选择值并将值分配给变量
- python - DataFrame : 获取每种类型的前 n 个值
- sql - SQL:Parent,Child,Subchild,仅当其所有孩子都有特定的子孩子时才选择父母