Я согласен с f1sh , что ваш код выглядит нормально, а также что вам не нужна строка Class.forName()
в вашем коде.Я также согласен с тем, что опция Независимая от платформы является правильным выбором операционной системы Windows при загрузке драйвера.
Однако, к сожалению, на вашем снимке экрана не показано расширение файла драйвера, которое выдобавлен под узлом Libraries .Можете ли вы подтвердить, что расширение файла jar , а не zip или tar ?
При загрузке драйвера MySQL создается файл zip или tar (в зависимости от выбранной вами опции), но вы должны распаковать его, чтобы получить доступ к фактическому драйверу с именем mysql-connector-java-8.0.13.jar , и это файл, который вы должны добавить в свой проект:
Если я включу вызов Class.forName()
и добавлю zip вместо jar в простой тестовый проект, я получу точно такую же ошибку, как и вы в NetBeans:
run:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at jdbcselecttest.JdbcSelectTest.dbQuery(JdbcSelectTest.java:31)
at jdbcselecttest.JdbcSelectTest.main(JdbcSelectTest.java:25)
C:\Users\johndoe\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
Стоит отметить, что без вызова Class.forName()
ошибка изменится на следующее:
run:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ebookshop?useSSL=false
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at jdbcselecttest.JdbcSelectTest.dbQuery(JdbcSelectTest.java:32)
at jdbcselecttest.JdbcSelectTest.main(JdbcSelectTest.java:25)
BUILD SUCCESSFUL (total time: 0 seconds)
А если я удалю файл zip и добавлю jar , файл все работает.
Если вы уже правильно используете файл jar , есть другие варианты для изучения, но это, вероятно, наиболее вероятная причина вашей проблемы.