我正在尝试使用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安装目录的library部分。然后我去了File-> Project Structure-> Libraries-> +并选择了连接器。结果如下:
IntelliJ现在确实在“外部库”下列出了连接器。
但是,问题仍然存在。
请记住,我是IntelliJ的新手,并且对Java使用数据库的经验很少。我通常为此目的使用C ++。
更新1: 对于什么样的项目:新建项目-> Java Enterprise-> Web应用程序(已选择Java 11,Tomcat 9.0.12和版本4.0)。除项目名称和位置外,其余只是标准设置。
答案 0 :(得分:0)
我发现了问题。就像对我的问题的评论者所正确指出的那样,“查看”->“工具”窗口->“数据库”-> +->“数据源”->“ MySQL”对该问题无关紧要。
首先,您必须将连接器添加为库。我最终将它添加了两次,一次作为Java库,一次作为Maven库。但是,如果您尝试使用,任何一个都足够。
诀窍是,您还必须将其添加为工件。就我而言,这是在“问题”下指出的。 IntelliJ也愿意为我做添加。我不知道的是,问题是从一开始还是仅在尝试运行该程序失败后才指出。无论如何,可以通过将数据库连接器添加到“文件”->“项目”->“结构”->“工件”下的“工件”类别中来解决该问题。