我正在尝试在Windows10机器上使用IntellijUltimate2018.2.5,使用JavaJSP、Tomcat9和mysql服务器编写一个web应用程序。问题是我总是得到 ClassNotFoundException
运行以下代码行时: Class.forName("com.mysql.jdbc.Driver");
我遵循了有关如何连接到sql server的官方文档:https://www.jetbrains.com/help/datagrip/2017.1/getting-started-with-datagrip.html
视图->工具窗口->数据库->+->数据源->mysql。
以下是我的配置截图:
请注意:我故意没有指定数据库,因为我的程序不能假定数据库已经存在。它必须先检查,如果没有,就创建它。由于程序始终无法连接到服务器,因此数据库从未创建,因此不存在。我担心这可能是问题的根源,但按“测试连接”会导致成功的连接(如屏幕截图所示)。
在google搜索之后,我手动下载了mysql-connector-java-8.0.13,并将jar文件放入intellij安装目录的library部分。然后我转到文件->项目结构->库->+并选择了连接器。结果如下:
intellij现在确实在外部库下列出了连接器。
然而,这个问题仍然存在。
请记住,我是intellij的新手,对使用java数据库几乎没有经验。我通常用c++来实现这个目的。
更新1:什么样的项目:new project->java enterprise->web application(选择了java11、tomcat9.0.12和version4.0)。除项目名称和位置外,其余的只是标准设置。
1条答案
按热度按时间cgvd09ve1#
我发现了问题。正如我的问题的评论员正确指出的那样,视图->工具窗口->数据库->+->数据源->mysql对问题并不重要。
首先,必须将连接器添加为库。最后我添加了两次,一次作为java库,一次作为maven库。但如果你试一下,任何一个都足够了。
诀窍是,你还必须添加它作为一个神器。在我的例子中,这是在问题下指出的。intellij还提出帮我做加法。我不知道的是,如果问题从一开始就指出了这一点,或者只是在尝试运行程序失败之后。不管怎样,通过将数据库连接器添加到files->project->structure->artifacts下的artifacts类别,都可以解决这个问题。