Що таке рядок підключення драйвера 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 був жорстко закодований, його не шукали в будь-якій змінній середовища
Jaime Hablutzel

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"

З док. Oracle ..

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>приведені в сполучному tab.It головним чином буде локальним: 3306. <dbname>буде знайти в розділі System вкладки Профілю в ОС 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 ();заяву. У JDBC 4.1 додається автоматичне управління ресурсами (ARM), яке в 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: // "host": "номер порту" /

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

І звичайно, це буде інакше, якщо ви використовуєте SSL / SSH.

Для отримання додаткової інформації перейдіть за офіційним посиланням Jetbriens (ідея IntelliJ):

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

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.