Что такое строка подключения драйвера MySQL JDBC?


117

Я новичок в JDBC и пытаюсь подключиться к базе данных MySQL. Я использую драйвер Connector / J, но не могу найти строку подключения JDBC для моего Class.forName()метода.


4
Для начала, Class.forName()ожидает не строку подключения JDBC, а имя класса драйвера JDBC.
BalusC

Ответы:


114

Предполагая, что ваш драйвер находится на пути,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");

1
как найти путь jdbc, если его нет в переменных среды?
Рой Хинкли

1
В примере кода URL-адрес JDBC был жестко запрограммирован, не выполнялся поиск ни в одной переменной среды
Хайме Хаблутцель

67

Вот документация:

https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

Базовая строка подключения выглядит так:

jdbc:mysql://localhost:3306/dbname

Строка class.forName - это «com.mysql.jdbc.Driver», которую вы можете найти (редактировать: теперь на той же странице).


Ссылки выше не работают. Вот новая рабочая ссылка: dev.mysql.com/doc/connector-j/en/…
hexicle

1
Если у меня есть три свойства , чтобы использовать в строке подключения, как бы строка соединения выглядеть - например: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Из документов оракула ..

jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]

host: port - это имя хоста и номер порта компьютера, на котором размещена ваша база данных. Если не указано иное, значения по умолчанию для хоста и порта 127.0.0.1 и 3306 соответственно.

база данных - это имя базы данных, к которой нужно подключиться. Если не указано, соединение выполняется без базы данных по умолчанию.

аварийное переключение - это имя резервной базы данных (MySQL Connector / J поддерживает аварийное переключение).

propertyName = propertyValue представляет собой необязательный список свойств, разделенных амперсандами. Эти атрибуты позволяют указать MySQL Connector / J для выполнения различных задач.


Если у меня есть три свойства , чтобы использовать в строке подключения, как бы строка соединения выглядеть - например: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar Это URI, поэтому свойства должны быть разделены амперсандами («&»), как указано в приведенной мной спецификации.
Тим Сильвестр

1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3

5

Это очень просто:

  1. Перейдите в рабочую среду MySQL и найдите База данных> Управление подключениями
  2. вы увидите список подключений. Щелкните соединение, к которому хотите подключиться.
  3. Вы увидите вкладки вокруг подключения, удаленного управления и системного профиля. Щелкните вкладку подключения.
  4. ваш URL jdbc:mysql://<hostname>:<port>/<dbname>?prop1и т. д. где<hostname> и <port>указаны на вкладке подключения. В основном это будет localhost: 3306. Его <dbname>можно найти на вкладке «Профиль системы» в имени службы Windows. По умолчанию в основном будет MySQL5<x> где x - номер версии, например. 56 для MySQL5.6 и 55 для MySQL5.5 и т. Д. Вы также можете указать собственное имя службы Windows для подключения.
  5. Создайте соответствующий URL-адрес и установите URL-адрес для подключения.

5

Для Mysql строка подключения драйвера jdbc - com.mysql.jdbc.Driver . Используйте следующий код для подключения: -

class DBConnection {
   private static Connection con = null;
   private static String USERNAME = "your_mysql_username";
   private static String PASSWORD = "your_mysql_password";
   private static String DRIVER = "com.mysql.jdbc.Driver";
   private static String URL = "jdbc:mysql://localhost:3306/database_name";

   public static Connection getDatabaseConnection(){
       Class.forName(DRIVER);
       return con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
   }
}


2

Поскольку ответ, похоже, уже был дан, добавить нечего, но я хотел бы добавить одну вещь к существующим ответам. Это был способ загрузки класса для драйвера JDBC для mysql

com.mysql.jdbc.Driver

Но сейчас это устарело. Новый класс драйверов теперь

com.mysql.cj.jdbc.Driver

Кроме того, драйвер автоматически регистрируется через SPI, и ручная загрузка класса драйвера обычно не требуется.


0
String url = "jdbc:mysql://localhost:3306/dbname";
String user = "user";
String pass = "pass";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, user, pass);

3306 порт по умолчанию для mysql.

Если вы используете Java 7, нет необходимости даже добавлять Class.forName("com.mysql.jdbc.Driver").newInstance (); оператор. Автоматическое управление ресурсами (ARM) добавлено в JDBC 4.1, которое по умолчанию входит в Java 7.

Общий формат URL-адреса JDBC для подключения к серверу MySQL следующий, при этом элементы в квадратных скобках ([]) являются необязательными:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

0

Протокол // [хостов] [/ базы данных] [? свойства]

Если у вас нет никаких свойств, игнорируйте его, тогда это будет похоже на

JDBC: MySQL: //127.0.0.1: 3306 / тест

jdbc: mysql - это протокол 127.0.0.1: это хост, а 3306 - это тест номера порта, это база данных


0

это зависит от того, какой сервис вы используете.

если вы используете MySQL Workbench, это будет примерно так:

jdbc: mysql: // "хост": "номер порта" /

String url = "jdbc:mysql://localhost:3306/";

И, конечно, все будет по-другому, если вы будете использовать SSL / SSH.

Для получения дополнительной информации перейдите по официальной ссылке Jetbriens (intelliJ idea):

Подключение к базе данных #

https://www.jetbrains.com/help/idea/connecting-to-a-database.html


Настройка подключений к базе данных #

https://www.jetbrains.com/help/idea/configuring-database-connections.html

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.