Как вы подключаетесь к базе данных MySQL на Java?
Когда я пытаюсь, я получаю
java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
Или
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Или
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
Ответы:
DriverManager
это довольно старый способ ведения дел. Лучший способ - это получитьDataSource
, либо посмотрев тот, который уже настроен для вас контейнером сервера приложений:или создание и настройка одного из вашего драйвера базы данных напрямую:
и затем получить соединения от него, так же, как указано выше:
источник
com.mysql.jdbc.Driver
? этот метод лучше?MysqlDataSource
реализует,javax.sql.DataSource
который является более новым механизмом.rs
иstmt
? Почему не простоconn
?Вот пошаговое объяснение, как установить MySQL и JDBC и как их использовать:
Загрузите и установите сервер MySQL . Просто сделай это обычным способом. Помните номер порта всякий раз, когда вы его изменили. Это по умолчанию
3306
.Загрузите драйвер JDBC и поместите в classpath , извлеките ZIP-файл и поместите содержащий JAR-файл в classpath. Драйвер JDBC для конкретного поставщика является конкретной реализацией API JDBC ( учебное пособие здесь ).
Если вы используете IDE, например Eclipse или Netbeans, вы можете добавить его в путь к классам, добавив файл JAR в качестве библиотеки в путь сборки в свойствах проекта.
Если вы делаете это «просто ванильно» в командной консоли, то вам нужно указать путь к файлу JAR в аргументе
-cp
или-classpath
при выполнении вашего Java-приложения..
Только там , чтобы добавить текущую директорию в путь к классам, а так , что он может найтиcom.example.YourClass
и;
является сепаратор , как путь к классам он находится в Windows. В Unix и клонах:
следует использовать.Создайте базу данных в MySQL . Давайте создадим базу данных
javabase
. Вы, конечно, хотите World Domination, так что давайте также использовать UTF-8.Создайте пользователя для Java и предоставьте ему доступ . Просто потому, что использование
root
это плохая практика.Да,
java
это имя пользователя иpassword
пароль здесь.Определите URL JDBC . Для подключения базы данных MySQL с использованием Java вам потребуется URL JDBC в следующем синтаксисе:
hostname
: Имя хоста, на котором установлен сервер MySQL. Если он установлен на той же машине, где вы запускаете код Java, то вы можете просто использоватьlocalhost
. Это также может быть IP-адрес, как127.0.0.1
. Если вы столкнулись с проблемами подключения и используете127.0.0.1
вместо того, чтобыlocalhost
решить, то у вас есть проблема в конфигурации вашей сети / DNS / hosts.port
: Порт TCP / IP, на котором прослушивает сервер MySQL. Это по умолчанию3306
.databasename
: Имя базы данных, к которой вы хотите подключиться. Этоjavabase
.Таким образом, окончательный URL должен выглядеть так:
Проверьте соединение с MySQL, используя Java . Создайте простой Java-класс с
main()
методом для проверки соединения.Если вы получаете a
SQLException: No suitable driver
, то это означает, что либо драйвер JDBC вообще не был загружен автоматически, либо URL-адрес JDBC неверен (т.е. он не был распознан ни одним из загруженных драйверов). Обычно драйвер JDBC 4.0 должен загружаться автоматически, когда вы просто отбрасываете его в путь к классам во время выполнения. Чтобы исключить одно и другое, вы всегда можете загрузить его вручную, как показано ниже:Обратите внимание, что
newInstance()
вызов здесь не нужен. Это просто исправить старое и глючноеorg.gjt.mm.mysql.Driver
. Объяснение здесь . Если эта строка выбрасываетClassNotFoundException
, то JAR-файл, содержащий класс драйвера JDBC, просто не помещается в путь к классам.Обратите внимание, что вам не нужно загружать драйвер каждый раз перед подключением. Достаточно всего один раз при запуске приложения.
Если Вы получаете
SQLException: Connection refused
илиConnection timed out
или MySQL специфическиеCommunicationsException: Communications link failure
, то это означает , что DB не доступен на всех. Это может иметь одну или несколько из следующих причин:Чтобы решить один или другой, следуйте следующим советам:
ping
.my.cnf
базы данных MySQL.--skip-networking option
.finally
.Обратите внимание , что закрытие
Connection
является чрезвычайно важным. Если вы не закрываете соединения и продолжаете получать их в течение короткого времени, то в базе данных могут не хватить соединений, и ваше приложение может разорваться. Всегда приобретайтеConnection
вtry-with-resources
заявлении . Или , если вы не на Java-пока, явно закрыть егоfinally
изtry-finally
блока. Закрытиеfinally
только для того, чтобы гарантировать, что оно также будет закрыто в случае исключения. Это относится и кStatement
,PreparedStatement
иResultSet
.Это было что касается связи. Вы можете найти здесь более продвинутый учебник , как загружать и хранить fullworthy модели объектов Java в базе данных с помощью базового класса DAO.
Использование шаблона Singleton для подключения к БД - плохой подход. Смотрите среди других вопросов: http://stackoverflow.com/q/9428573/ . Это ошибка № 1 для начинающих.
источник
Инициализируйте константы базы данных
Создать постоянную базу данных свойств, имя пользователя, пароль, URL и драйверы, лимит опроса и т.д.
Инициализировать соединение и свойства
Как только соединение установлено, его лучше хранить для повторного использования.
Создать свойства
Объект свойств содержит информацию о соединении, проверьте, если она уже установлена.
Подключите базу данных
Теперь подключитесь к базе данных, используя инициализированные константы и свойства.
Отключить базу данных
Когда вы закончите работу с базой данных, просто закройте соединение.
Все вместе
Используйте этот класс
MysqlConnect
сразу после изменения имени_базы данных, имени пользователя, пароля и т. Д.Как пользоваться?
Инициализируйте класс базы данных.
Где-то еще в вашем коде ...
Это все :) Если что-то улучшить, отредактируйте его! Надеюсь, это полезно.
источник
com.mysql.jdbc.Driver
этогоjdbc:mysql://localhost:3306/stocks
следует использовать, так как первое устарело.источник
Вот тот минимум, который вам нужен для получения данных из базы данных MySQL:
Добавьте обработку исключений, настройку и т. Д. По вкусу.
источник
Class.forName(...).newInstance()
?MySQL JDBC Соединение с useSSL.
источник
у вас должен быть jar соединителя mysql в вашем classpath.
в Java JDBC API делает все с базами данных. используя JDBC, мы можем писать приложения Java на
1. Отправлять запросы или обновлять SQL в БД (любую реляционную базу данных) 2. Получать и обрабатывать результаты из БД
ниже трех шагов мы можем получить данные из любой базы данных
источник
Короткий и сладкий код.
Для SQL Server 2012
источник
Connection
Я использовал некоторое время назад, это выглядело как самый простой способ, но также была рекомендация сделать тамif
заявление - точноИли как-то так :)
Наверное, есть какой-то случай, пока
getConnection
можно вернутьсяnull
:)источник
Вы можете увидеть все шаги для подключения базы данных MySQL из приложения Java здесь . Для другой базы данных вам просто нужно изменить драйвер только на первом шаге. Пожалуйста, убедитесь, что вы указали правильный путь к базе данных и правильное имя пользователя и пароль.
Посетите http://apekshit.com/t/51/Steps-to-connect-Database-using-JAVA
источник
Метод 1: установите переменную CLASSPATH.
В приведенной выше команде я установил для CLASSPATH текущую папку и файл mysql-connector-java-VERSION.jar. Поэтому, когда
java MyClassFile
команда будет выполнена, программа запуска приложений java попытается загрузить все классы Java в CLASSPATH. И это нашлоDrive
ошибки класса => BOOM пропали.Способ 2:
Примечание. Class.forName ("com.mysql.jdbc.Driver"); Это не рекомендуется в данный момент 2019 апр.
Надеюсь, что это может помочь кому-то!
источник
MySql JDBC Connection:
источник
Скачать драйвер JDBC
Ссылка для скачивания (выберите платформу независимо): https://dev.mysql.com/downloads/connector/j/
Переместить драйвер JDBC на диск C
Разархивируйте файлы и перейдите на диск C: \. Ваш путь к драйверу должен быть таким
C:\mysql-connector-java-8.0.19\mysql-connector-java-8.0.19
Запустите свою Java
testMySQL.java
источник
Короткий номер
источник