Apa itu string koneksi driver MySQL JDBC?


117

Saya baru mengenal JDBC dan saya mencoba membuat koneksi ke database MySQL. Saya menggunakan driver Connector / J, tetapi saya tidak dapat menemukan string koneksi JDBC untuk Class.forName()metode saya .


4
Untuk memulai, Class.forName()tidak mengharapkan string koneksi JDBC, tetapi nama kelas driver JDBC.
BalusC

Jawaban:


114

Dengan asumsi pengemudi Anda berada di jalur yang benar,

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

1
bagaimana Anda menemukan jalur jdbc jika tidak ada dalam variabel lingkungan?
Roy Hinkley

1
Dalam kode sampel, url JDBC telah di-hardcode, tidak dicari di variabel lingkungan mana pun
Jaime Hablutzel

67

Berikut dokumentasinya:

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

String koneksi dasar terlihat seperti:

jdbc:mysql://localhost:3306/dbname

String class.forName adalah "com.mysql.jdbc.Driver", yang dapat Anda temukan (edit: sekarang di halaman yang sama).


Tautan di atas tidak berfungsi. Ini tautan kerja baru: dev.mysql.com/doc/connector-j/en/…
hexicle

1
Jika saya memiliki tiga sifat untuk digunakan dalam koneksi string, bagaimana akan koneksi string terlihat seperti - misalnya: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Dari dokumen oracle ..

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

host: port adalah nama host dan nomor port dari komputer yang menghosting database Anda. Jika tidak ditentukan, nilai default dari host dan port adalah 127.0.0.1 dan 3306.

database adalah nama database yang akan disambungkan. Jika tidak ditentukan, koneksi dibuat tanpa database default.

failover adalah nama database siaga (Konektor MySQL / J mendukung failover).

propertyName = propertyValue mewakili daftar properti opsional yang dipisahkan oleh ampersand. Atribut ini memungkinkan Anda untuk menginstruksikan Konektor MySQL / J untuk melakukan berbagai tugas.


Jika saya memiliki tiga sifat untuk digunakan dalam koneksi string, bagaimana akan koneksi string terlihat seperti - misalnya: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar Ini adalah URI, jadi properti harus dipisahkan dengan tanda ampersand ("&"), seperti yang ditunjukkan dalam spesifikasi yang saya kutip.
Tim Sylvester

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

5

Ini sangat sederhana:

  1. Buka meja kerja MySQL dan cari Database> Kelola Koneksi
  2. Anda akan melihat daftar koneksi. Klik pada koneksi yang ingin Anda hubungkan.
  3. Anda akan melihat tab di sekitar koneksi, manajemen jarak jauh, profil sistem. Klik pada tab koneksi.
  4. url Anda adalah jdbc:mysql://<hostname>:<port>/<dbname>?prop1dll. di mana <hostname>dan <port>diberikan di tab koneksi. Sebagian besar akan menjadi localhost: 3306. <dbname>akan ditemukan di bawah tab Profil Sistem di Nama Layanan Windows. Default sebagian besar adalah MySQL5 di <x>mana x adalah nomor versi misalnya. 56 untuk MySQL5.6 dan 55 untuk MySQL5.5 dll. Anda juga dapat menentukan nama Layanan Windows Anda sendiri untuk dihubungkan.
  5. Buat url yang sesuai dan setel url untuk terhubung.

5

Untuk Mysql, string koneksi Driver jdbc adalah com.mysql.jdbc.Driver . Gunakan kode berikut untuk terhubung: -

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);
   }
}

3

pembaruan untuk mySQL 8:

String jdbcUrl="jdbc:mysql://localhost:3306/youdatabase?useSSL=false&serverTimezone=UTC";


2

Karena jawabannya sepertinya sudah terjawab, tidak banyak yang bisa ditambahkan tetapi saya ingin menambahkan satu hal ke jawaban yang ada. Ini adalah cara memuat kelas untuk driver JDBC untuk mysql

com.mysql.jdbc.Driver

Tapi ini sudah usang sekarang. Kelas pengemudi baru sekarang

com.mysql.cj.jdbc.Driver

Juga driver secara otomatis terdaftar melalui SPI dan pemuatan manual kelas driver umumnya tidak diperlukan.


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 adalah port default untuk mysql.

Jika Anda menggunakan Java 7 maka tidak perlu menambahkan Class.forName("com.mysql.jdbc.Driver").newInstance ();pernyataan. Manajemen Sumber Daya Otomatis (ARM) ditambahkan di JDBC 4.1 yang secara default tersedia di Java 7.

Format umum URL JDBC untuk menghubungkan ke server MySQL adalah sebagai berikut, dengan item dalam tanda kurung siku ([]) bersifat opsional:

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

0

protokol // [host] [/ database] [? properti]

Jika Anda tidak memiliki properti apa pun, abaikan saja maka akan seperti

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql adalah protokol 127.0.0.1: adalah tuan rumah dan 3306 adalah tes nomor port adalah database


0

itu tergantung pada layanan apa yang Anda gunakan.

jika Anda menggunakan MySQL Workbench, akan terjadi hal seperti ini:

jdbc: mysql: // "host": "nomor port" /

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

Dan tentunya akan berbeda jika menggunakan SSL / SSH.

Untuk informasi lebih lanjut, ikuti tautan resmi Jetbriens (ide intelliJ):

Menghubungkan ke database #

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


Mengkonfigurasi koneksi database

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.