Apa gunanya file jar konektor mysql?

MariaDB Connector/J digunakan untuk menghubungkan aplikasi yang dikembangkan di Java ke database MariaDB dan MySQL menggunakan JDBC API standar. Perpustakaan ini berlisensi LGPL

MariaDB Connector/J adalah driver JDBC Tipe 4. Ini dikembangkan secara khusus sebagai konektor JDBC ringan untuk digunakan dengan server database MariaDB dan MySQL. Awalnya didasarkan pada kode Drizzle JDBC dengan banyak tambahan dan perbaikan bug

Kompatibilitas Server

MariaDB Connector/J kompatibel dengan semua server MariaDB dan MySQL versi 5. 5. 3 dan selanjutnya

Rilis MariaDB Connector/J lebih lama dari 1. 2. 0 mungkin kompatibel dengan versi server yang lebih lama dari MariaDB 5. 5 dan MySQL5. 5, tetapi rilis MariaDB Connector/J tersebut tidak didukung lagi

Kompatibilitas Java

Untuk menentukan seri rilis MariaDB Connector/J mana yang paling baik digunakan untuk setiap versi Java, silakan lihat tabel berikut

Menginstal Konektor MariaDB/J

MariaDB Connector/J dapat diinstal menggunakan Maven, Gradle, atau dengan meletakkan file

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
1 secara manual di
        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
2 Anda. Lihat Memasang MariaDB Connector/J untuk informasi lebih lanjut

File MariaDB Connector/J

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
1 dan tarbal kode sumber dapat diunduh dari URL berikut

File MariaDB Connector/J

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
_1 juga dapat diunduh dari URL berikut

Menginstal Ketergantungan

JNA [bersih. Jawa. dev. jna. jna] dan JNA-PLATFORM [net. Jawa. dev. jna. jna-platform] 4. 2. 1 atau lebih besar juga diperlukan saat Anda ingin terhubung ke server dengan soket Unix atau pipa windows

Menggunakan Driver

Subbagian berikut menunjukkan pemformatan string koneksi JDBC untuk server database MariaDB dan MySQL. Selain itu, kode contoh disediakan yang menunjukkan cara menyambung ke salah satu server ini dan membuat tabel

Mendapatkan Koneksi Baru

Ada dua cara standar untuk mendapatkan koneksi

Menggunakan DriverManager

Cara yang disukai untuk mendapatkan koneksi dengan MariaDB Connector/J adalah dengan menggunakan kelas

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
5. Saat kelas
        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
_6 digunakan untuk mencari dan memuat MariaDB Connector/J, aplikasi tidak memerlukan konfigurasi lebih lanjut. Kelas
        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
6 akan memuat MariaDB Connector/J secara otomatis dan memungkinkannya digunakan dengan cara yang sama seperti driver JDBC lainnya

Sebagai contoh

Connection connection = DriverManager.getConnection["jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword"];

Cara lama memuat driver JDBC juga masih berfungsi untuk MariaDB Connector/J. e. g.

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
_8

jdbc. kompatibilitas skema mysql

Konektor MariaDB/J 3. 0 hanya menerima

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
_9 sebagai protokol dalam string koneksi secara default. Ketika MariaDB Connector/J dan driver MySQL ditemukan di jalur kelas, menggunakan
        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
9 sebagai protokol membantu memastikan bahwa Java memilih MariaDB Connector/J

Connector/J masih mengizinkan

jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
_1 sebagai protokol dalam string koneksi saat opsi
jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
2 disetel. Sebagai contoh

jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
_3

[2. versi x mengizinkan URL koneksi yang dimulai dengan

jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
4 dan
jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
5]

Menggunakan Kolam

Cara lain untuk mendapatkan koneksi dengan MariaDB Connector/J adalah dengan menggunakan kumpulan koneksi

MariaDB Connector/J menyediakan 2 implementasi kumpulan Sumber Data yang berbeda

  • jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
    
    _6. Implementasi dasar. Itu membuat koneksi baru setiap kali metode
    jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
    
    7 dipanggil
  • jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
    
    _8. Implementasi kumpulan koneksi. Itu memelihara kumpulan koneksi, dan ketika koneksi baru diminta, satu dipinjam dari kumpulan
Kolam Dalam

Konfigurasi kumpulan internal driver menyediakan implementasi kumpulan yang sangat cepat dan menangani masalah yang dimiliki sebagian besar kumpulan java

  • 2 pembersihan status koneksi yang berbeda setelah rilis
  • berurusan dengan non-aktivitas [koneksi di kumpulan akan dilepaskan jika tidak digunakan setelah beberapa waktu, menghindari masalah yang dibuat saat server menutup koneksi setelah @wait_timeout tercapai]

Lihat dokumentasi kumpulan untuk informasi lebih lanjut

Kolam luar

Saat menggunakan kumpulan koneksi eksternal, kelas Driver MariaDB

jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
9 harus dikonfigurasi

Contoh menggunakan kumpulan koneksi hikariCP JDBC

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];

Harap perhatikan bahwa kelas driver yang disediakan oleh MariaDB Connector/J bukan

[:]  or address=[host=][[port=]][[type=[master|slave]]]
0 tetapi
jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 
9

Kelas

[:]  or address=[host=][[port=]][[type=[master|slave]]]
_2 dapat digunakan ketika konfigurasi sumber data kumpulan hanya mengizinkan java. sql. Implementasi sumber data

Rangkaian Sambungan

Format string koneksi JDBC adalah

jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] 

Deskripsi Host

[:]  or address=[host=][[port=]][[type=[master|slave]]]

Beberapa catatan tentang ini

  • Tuan rumah harus berupa nama DNS atau alamat IP
  • Jika host adalah alamat IPv6, maka harus berada di dalam tanda kurung siku
  • Port default adalah
    [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    3
  • Jenis standarnya adalah
    [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    _4
  • Jika mode failover dan load-balancing diatur ke
    [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    5, maka konektor mengasumsikan bahwa host pertama adalah master, dan yang lainnya adalah budak secara default, jika jenisnya tidak disebutkan secara eksplisit
  • awalan failover aurora tersedia di 2. versi x

Contoh

  • [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    6
  • [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    7
  • [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    8
  • [:]  or address=[host=][[port=]][[type=[master|slave]]]
    
    _9

Mode Failover dan Load-Balancing

Mode Failover dan Load-Balancing diperkenalkan di MariaDB Connector/J 1. 2. 0

pengemudi 3. 0 adalah penulisan ulang konektor yang lengkap. Dukungan khusus untuk aurora belum diterapkan di 3. 0, karena bergantung pada perpipaan. Aurora tidak kompatibel dengan perpipaan. Masalah untuk Aurora menumpuk tanpa komunitas mengusulkan PR apa pun untuk mereka dan tanpa akses bagi kami untuk menguji modifikasi tersebut. [2. versi x memiliki dukungan 5 tahun]

Lihat deskripsi failover untuk informasi lebih lanjut

Parameter URL Opsional

Komentar umum. Opsi yang tidak diketahui diterima dan diabaikan secara diam-diam

Opsi berikut saat ini didukung

Parameter Esensial

Parameter TLS

informasi lebih lanjut tentang Menggunakan TLS/SSL dengan konektor Java MariaDB

Parameter Kolam

Lihat dokumentasi kumpulan untuk konfigurasi kumpulan

Parameter yang Jarang Digunakan

opsi dihapus

Catatan Implementasi API JDBC

Pertimbangan ukuran

GSSAPI di windows tidak didukung dengan baik di java, menyebabkan masalah berulang. Sejak 3. 1, waffle-jna ditandai sebagai ketergantungan untuk memberikan dukungan GSSAPI yang baik tanpa masalah. Ini memiliki kelemahan untuk membuat konektor dan dependensi menjadi ukuran sekitar 4Mb

Jika ukuran penting, ketergantungan dapat dihapus, konektor berfungsi dengan baik, hanya akan memiliki beberapa batasan menggunakan GSSAPI di windows

ini bisa dilakukan seperti ini

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

dependencies {
    implementation['org.mariadb.jdbc:mariadb-java-client:3.1.0'] {
        exclude group: 'com.github.waffle', module: 'waffle-jna'
    }
}

Solusi sederhananya adalah selalu membuat klien dan server berbagi zona waktu yang sama

Jika bukan itu masalahnya, beberapa opsi mengizinkan untuk memperbaiki perilaku itu. Dalam 2. x, ada 2 opsi `useLegacyDatetimeCode` dan `serverTimezone` yang mengontrol perbedaan zona waktu. Opsi tersebut sekarang dihapus di 3. versi x, karena mereka tidak mematuhi dengan baik

Sejak 3. 0. 0, izin 'zona waktu' opsi baru untuk menangani perbedaan zona waktu

Opsi `timezone` dapat memiliki 3 jenis nilai

  • 'dinonaktifkan' [default]. konektor tidak mengubah zona_waktu
  • 'mobil'. konektor akan mengatur variabel koneksi time_zone ke zona waktu default Java
  • ''. konektor akan mengatur variabel koneksi ke nilai

Solusinya adalah mengatur zona waktu secara eksplisit ke 'otomatis' atau ke zona waktu eksplisit

contoh

  • jdbc. mariadb. localhost/?timezone=+5. 00
  • jdbc. mariadb. localhost/?timezone=otomatis
  • jdbc. mariadb. localhost/?timezone=America/New_York

Nilai yang disarankan adalah menyetel zona waktu ke 'otomatis'. Connector kemudian akan mengubah variabel koneksi time_zone ke nilai `timezone` saat koneksi dibuat. Ini memungkinkan penggunaan server yang aman. Jika klien menggunakan zona waktu IANA, server mungkin harus memuat informasi zona waktu lihat mysql_tzinfo_to_sql dan zona waktu, dan itu tidak diisi secara default

Ini sesuai dengan perilaku konektor MySQL dengan opsi "connectionTimeZone" disetel dengan opsi "forceConnectionTimeZoneToSession" disetel ke true

"MUAT INFILE DATA"

LOAD DATA INFILE adalah cara tercepat untuk memuat data. Sejak MariaDB 10. 2, sekarang cara tercepat adalah JDBC executionBatch[] standar ketika opsi 'useBulkStmts' diaktifkan

Cara tercepat untuk memuat banyak data menggunakan LOAD DATA INFILE
Namun, menggunakan "LOAD DATA LOCAL INFILE" [mis. memuat file dari klien] dapat menjadi masalah keamanan jika seseorang dapat mengeksekusi kueri dari klien, ia dapat memiliki akses ke file apa pun di klien [sesuai dengan hak pengguna yang menjalankan proses klien]

Opsi khusus "allowLocalInfile" [default ke true] dapat menonaktifkan fungsionalitas ini di sisi klien. Variabel global dapat menonaktifkan LOAD DATA LOCAL INFILE di sisi server

Pengemudi mengikuti spesifikasi JDBC, mengizinkan Pernyataan. setQueryTimeout[] untuk pernyataan tertentu

Jika tujuannya adalah untuk menetapkan batas waktu untuk semua kueri, sejak MariaDB 10. 1. 1, server mengizinkan waktu kueri yang terbatas dengan menyetel variabel sistem

Solusi ini akan menangani batas waktu kueri lebih baik [dan lebih cepat] daripada solusi java [JPA2, "javax. kegigihan. pertanyaan. timeout", solusi terintegrasi Pools seperti Tomcat jdbc-pool "queryTimeout". ]

Opsi "sessionVariables" memungkinkan untuk mengatur variabel sistem ini dengan mudah. Contoh

#will set a maximum query timeout of 10 seconds for this connection
jdbc:mariadb://localhost/db?user=user&sessionVariables=max_statement_time=10

Set Hasil Streaming

Secara default,

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

_0 akan membaca hasil lengkap yang ditetapkan dari server. Dengan kumpulan hasil yang besar, ini akan membutuhkan banyak memori

Untuk menghindari penggunaan terlalu banyak memori, lebih baik gunakan Pernyataan. setFetchSize[int numberOfRowInMemory] untuk menunjukkan jumlah baris yang akan disimpan di memori
Contoh
menggunakan

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

_1 menunjukkan bahwa 1000 baris akan disimpan dalam memori
Jadi, saat kueri dieksekusi, 1000 baris akan ada di memori. Setelah 1000
	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

2, 1000 baris berikutnya akan disimpan di memori, dan seterusnya

Perhatikan bahwa server biasanya mengharapkan klien untuk membacakan set hasil dengan relatif cepat. Variabel server mengontrol perilaku ini [default ke 60an]. Jika Anda tidak mengharapkan hasil ditangani dalam jumlah waktu ini, ada kemungkinan berbeda

  • Dengan >= MariaDB 10. 1. 2, Anda dapat menggunakan kueri "SET STATEMENT net_write_timeout=10000 FOR XXX" dengan XXX kueri "normal" Anda. Ini akan menunjukkan bahwa khusus untuk kueri ini, akan disetel ke waktu yang lebih lama [10.000 dalam contoh ini]
  • untuk server yang lebih lama, kueri tertentu harus menyetel net_write_timeout untuk sementara ["SET STATEMENT net_write_timeout=. "], dan mengaturnya kembali sesudahnya
  • jika aplikasi Anda biasanya menggunakan banyak kueri panjang dengan ukuran pengambilan, koneksi dapat diatur menggunakan opsi "variabel sesi = net_write_timeout = xxx"

Bahkan menggunakan setFetchSize, server akan mengirimkan semua hasil ke klien

Jika kueri lain dijalankan pada koneksi yang sama saat kumpulan hasil streaming belum sepenuhnya dibaca, konektor akan menempatkan seluruh kumpulan hasil streaming yang tersisa di memori untuk menjalankan kueri berikutnya. Ini dapat menyebabkan OutOfMemoryError jika tidak ditangani

Sebelum versi 1. 4. 0, satu-satunya nilai yang diterima untuk ukuran pengambilan adalah

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

3 [setara dengan
	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

4]. Nilai ini masih diterima karena alasan kompatibilitas melainkan menggunakan
	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

4, karena menurut JDBC nilainya harus >= 0

Pernyataan yang Disiapkan

Pengemudi menggunakan pernyataan yang disiapkan server sebagai standar untuk berkomunikasi dengan database [sejak 1. 3. 0]. Jika opsi "allowMultiQueries" disetel ke true, driver hanya akan menggunakan protokol teks. Pernyataan yang disiapkan [substitusi parameter] ditangani oleh driver, di sisi klien

Pernyataan yang Dapat Dipanggil

Implementasi pernyataan yang dapat dipanggil tidak perlu mengakses metadata prosedur tersimpan [mysql. proc] tabel jika kedua hal berikut ini benar

  • Pernyataan yang Dapat Dipanggil. getMetadata[] tidak digunakan
  • Parameter diakses berdasarkan indeks, bukan berdasarkan nama

Jika memungkinkan, mengikuti dua aturan di atas memberikan kecepatan yang lebih baik dan menghilangkan kekhawatiran tentang hak istimewa SELECT di mysql. tabel prok

Pembatasan kunci yang dihasilkan

Izin Java mengambil kunci yang dibuat terakhir, menggunakan

Contoh

    Statement stmt = sharedConn.createStatement[];
    stmt.execute[
            "INSERT INTO executeGenerated[t2] values [100]", Statement.RETURN_GENERATED_KEYS];
    ResultSet rs = stmt.getGeneratedKeys[];
    rs.next[];
    System.out.println[rs.getInt[1]];

Hanya kunci yang dihasilkan pertama yang akan dikembalikan, artinya untuk multi-insert, kunci yang dihasilkan diambil akan sesuai dengan nilai perintah yang dihasilkan pertama

Jika perlu mengambil semua nilai yang dihasilkan untuk banyak sisipan, harap gunakan INSERT. KEMBALI perintah [sejak MariaDB 10. 5]

Kelas JDBC opsional

Antarmuka opsional berikut diimplementasikan oleh org. mariadb. jdbc. kelas MariaDbDataSource. javax. sql. Sumber Data, javax. sql. ConnectionPoolDataSource, javax. sql. XADataSource

hati-hati. org. mariadb. jdbc. MySQLDataSource sudah tidak ada lagi dan harus diganti dengan org. mariadb. jdbc. MariaDbDataSource sejak v1. 3. 0

Contoh Penggunaan

Kode berikut memberikan contoh dasar tentang cara menyambung ke server MariaDB atau MySQL dan membuat tabel

Membuat Tabel di Server MariaDB atau MySQL

Connection  connection = DriverManager.getConnection["jdbc:mariadb://localhost:3306/test", "username", "password"];
Statement stmt = connection.createStatement[];
stmt.executeUpdate["CREATE TABLE a [id int not null primary key, value varchar[20]]"];
stmt.close[];
connection.close[];

Jasa

Pengemudi mengimplementasikan 3 jenis layanan

  • Layanan kredensial. izin pemberian kredensial
  • Layanan otentikasi. mengizinkan penambahan plugin autentikasi klien
  • Layanan pabrik SSL. implementasi TSL khusus

Layanan kredensial

Kredensial biasanya diatur menggunakan pengguna/kata sandi di string koneksi atau dengan menggunakan DriverManager. getConnection[String url, String pengguna, Kata sandi string]

Plugin kredensial mengizinkan untuk memberikan informasi kredensial dari cara lain. Plugin tersebut harus mengaktifkan opsi pengaturan `credentialType` ke plugin yang ditunjuk

Pengemudi memiliki 3 plugin default

IAM AWS

Ini memungkinkan autentikasi IAM database AWS. Plugin menghasilkan token menggunakan kredensial dan wilayah IAM. Token berlaku selama 15 menit dan di-cache selama 10 menit

Untuk menggunakan otentikasi kredensial ini, com. amazonaw. dependensi aws-java-sdk-rds harus didaftarkan di classpath. Implementasi menggunakan SDK DefaultAWSCredentialsProviderChain dan DefaultAwsRegionProviderChain untuk mendapatkan kredensial dan wilayah IAM. lihat DefaultAWSCredentialsProviderChain dan DefaultAwsRegionProviderChain untuk memeriksa bagaimana informasi tersebut dapat diambil [variabel lingkungan/properti sistem, file,. ]

Contoh.

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

_6

dengan set variabel lingkungan AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY dan AWS_REGION

Lingkungan

Pengguna dan Kata Sandi diambil dari variabel lingkungan. variabel lingkungan default adalah MARIADB_USER dan MARIADB_PWD, tetapi dapat diubah dengan menyetel opsi tambahan `userKey` dan `pwdKey`

Contoh. menggunakan string koneksi

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

7 pengguna dan kata sandi akan diambil dari variabel lingkungan MARIADB_USER dan MARIADB_PWD

Properti

Pengguna dan Kata Sandi diambil dari properti java. nama properti default adalah mariadb. pengguna dan mariadb. pwd, tetapi nama properti dapat diubah dengan menyetel opsi tambahan `userKey` dan `pwdKey`

Contoh. menggunakan string koneksi

	org.mariadb.jdbc
	mariadb-java-client
	3.1.0
        
          
            com.github.waffle
            waffle-jna
          
       

8 pengguna dan kata sandi akan diambil dari properti java `mariadbUser` dan `mariadbPwd`

Plugin otentikasi klien sekarang didefinisikan sebagai layanan. Ini memungkinkan untuk menambahkan plugin autentikasi klien baru dengan mudah

Daftar plugin autentikasi di konektor java

  • mysql_clear_password
  • auth_gssapi_client
  • client_ed25519
  • mysql_native_password
  • mysql_old_password
  • dialog [PAM]
  • sha256_password
  • caching_sha2_password

Plugin autentikasi baru dapat dibuat dengan mengimplementasikan interface org. mariadb. jdbc. autentikasi. AuthenticationPlugin, dan daftar plugin baru di META-INF/services/org. mariadb. jdbc. autentikasi. File AuthenticationPlugin

Layanan pabrik SSL

Implementasi SSL khusus dapat digunakan untuk mengimplementasikan Koneksi ke server pada awalnya membuat soket. Saat disetel, soket SSL dilapisi di atas soket yang ada ini. Organisasi pelaksana. mariadb. jdbc. tls. Izin TlsSocketPlugin untuk menyediakan implementasi SSL khusus misalnya membuat implementasi HostnameVerifier baru

Implementasi khusus perlu mengimplementasikan org. mariadb. jdbc. tls. TlsSocketPlugin dan daftarkan layanan META-INF/services/org. mariadb. jdbc. tls. TlsSocketPlugin

Implementasi khusus diaktifkan menggunakan opsi `tlsSocketType`

Pencatatan yang mudah digunakan

Di Konektor MariaDB/J 3. 0, logging sekarang dapat diaktifkan saat runtime. Connector/J menggunakan slf4j API jika diinstal. Jika tidak, Connector/J menggunakan logger / konsol JDK

nama logger adalah "org. mariadb. jdbc"

Connector/J mendukung level logging Java berikut

Hati-hati dengan level "jejak", tujuannya adalah untuk mencatat semua pertukaran dengan server. Ini berarti sejumlah besar data. Konfigurasi yang buruk dapat menimbulkan masalah, seperti mengisi disk dengan cepat

Contoh konfigurasi level "trace" pada driver untuk logback. logback file. xml di src/main/resources/




    
        
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
        
    

    
        
    

    
        
    


Contoh log yang dihasilkan

        final HikariDataSource ds = new HikariDataSource[];
        ds.setMaximumPoolSize[20];
        ds.setDriverClassName["org.mariadb.jdbc.Driver"];
        ds.setJdbcUrl["jdbc:mariadb://localhost:3306/db"];
        ds.addDataSourceProperty["user", "root"];
        ds.addDataSourceProperty["password", "myPassword"];
        ds.setAutoCommit[false];
0

Integrasi Berkelanjutan dan Pengujian Otomatis

Untuk integrasi berkelanjutan MariaDB Connector/J dan hasil pengujian otomatis, silakan lihat MariaDB Connector/J's Travis CI

Melaporkan Bug

Jika Anda menemukan bug, harap laporkan melalui proyek CONJ di pelacak bug Jira milik MariaDB

Kode sumber

Kode sumber tersedia di repositori mariadb-connector-j di GitHub

Lisensi

Lisensi Publik Umum Kecil GNU seperti yang diterbitkan oleh Free Software Foundation; . 1 dari Lisensi, atau [sesuai pilihan Anda] versi yang lebih baru

Untuk pertanyaan tentang lisensi, lihat FAQ Perizinan

F. A. Q

Kesalahan "Tidak dapat membaca kumpulan hasil. akhir aliran yang tidak terduga, baca 0 byte dari 4"

Ada masalah saat berkomunikasi dengan server

Sering kali hal ini disebabkan oleh pembacaan kueri yang memiliki kumpulan hasil yang besar; . Variabel server mengontrol perilaku ini [default ke 60an]. Jika klien tidak membaca seluruh hasil dalam waktu tersebut, server akan memutuskan koneksi. Jika Anda tidak mengharapkan hasil ditangani dalam waktu ini, ada kemungkinan lain

  • jika versi server Anda >= MariaDB 10. 1. 2, Anda dapat menggunakan kueri "SET STATEMENT net_write_timeout=10000 FOR XXX" dengan XXX sebagai kueri "normal" Anda. Ini akan menunjukkan bahwa khusus untuk kueri ini, akan disetel ke waktu yang lebih lama [10.000 dalam contoh ini]
  • untuk server yang lebih lama, kueri tertentu harus menyetel net_write_timeout untuk sementara ["SET STATEMENT net_write_timeout=. "], dan mengaturnya kembali sesudahnya
  • jika aplikasi Anda biasanya menggunakan banyak kueri panjang dengan ukuran pengambilan, koneksi dapat disetel menggunakan opsi "Variabel sesi=net_write_timeout=xxx"

Cara Melakukan Ping Ringan/Hindari Massal "pilih 1"

Koneksi. isValid[] adalah pendekatan yang bagus. Koneksi. isValid[] sedang melakukan ping [ping dalam protokol mysql, bukan ping jaringan]. Kumpulan koneksi menggunakan Validasi JDBC4 menggunakan Koneksi ini secara otomatis. adalah benar[]

Bagaimana cara menggunakan stoples Konektor MySQL?

Prosedur .
Unduh driver MySQL Connector/J di dev. mysql. com
Instal. jar dan catat lokasinya untuk referensi di masa mendatang. Misalnya, instal. file jar di C. \Program Files\MySQL\MySQL Connector J\mysql-connector-Java-5. 1. 32-bin. stoples

Mengapa Konektor MySQL digunakan?

Konektor MySQL menyediakan konektivitas ke server MySQL untuk program klien . API menyediakan akses tingkat rendah ke sumber daya MySQL menggunakan protokol MySQL klasik atau Protokol X.

Apa itu file jar konektor?

Berkas jar adalah kumpulan kelas Java [biasanya perpustakaan] . Dan mysql-connector-Java-8. 0. 12. jar adalah versi 8. 0. 12 dari driver MySQL Connector/J JDBC.

Guci apa yang dibutuhkan untuk MySQL?

Untuk menghubungkan aplikasi java dengan database mysql, mysqlconnector. jar file harus dimuat.

Bài mới nhất

Chủ Đề