Sejauh mana klien MariaDB Java pengganti sempurna untuk MySQL JDBC (Connector / J)?

11

Premis : Saya mengirim aplikasi Java yang akan membuat koneksi JDBC ke database MySQL. (Pada saat penulisan ini bisa jadi 5.1 atau 5.5, tapi semoga pertanyaan dan jawabannya tidak terlalu bergantung pada versi.)

Pengamatan : Jelas, saya dapat menggunakan driver MySQL JDBC ( Connector / J ) atau driver MariaDB JDBC ( MariaDB Java Client ) untuk membuat koneksi ke server MySQL. Satu manfaat besar dari sudut pandang ISV adalah bahwa driver MariaDB berlisensi LGPL sedangkan driver MySQL berlisensi GPL. Performa driver MariaDB tampaknya sangat bagus.

Pertanyaan : Sejauh mana driver JDBBC MariaDB pengganti yang sempurna untuk driver JDBC MySQL?

Saya tidak mencari perdebatan tentang manfaat relatif keduanya. Tetapi saya berharap seseorang dapat menjawab seperti ini:

  • Pengandar MariaDB JDBC memiliki masalah penting dengan X dan Y, sehingga Anda akan memiliki masalah jika Anda menggunakan salah satu dari ini.
  • Berdasarkan pada beberapa artikel atau spesifikasi atau kode atau bukti lain, driver MariaDB JDBC sepenuhnya mengimplementasikan [setidaknya] semua metode yang tersedia di driver MySQL. Kamu akan baik-baik saja.
mdahlman
sumber
Klien MariaDB menangani pernyataan yang disiapkan di sisi klien. Itu mungkin masalah.
Mat
1
Saya dapat menambahkan bahwa saya belum menemukan masalah. Itu bukan jawaban yang komprehensif, tapi itu pertanda baik.
mdahlman
@Mat Update: Sudah useServerPrepStmtssejak itu 1.3.0, karena 1.6.0tidak aktif secara default. Tidak tahu kenapa.
maaartinus

Jawaban:

6

Saya sedikit gugup.

Pertama, sisi positifnya: Saya telah menggunakan driver MariaDB JDBC dalam layanan "selalu aktif" dalam produksi dengan kumpulan koneksi database dan itu berjalan dengan baik selama beberapa bulan sekarang. Layanan ini hanya menggunakan fungsi JDBC dasar dengan permintaan sederhana (mis. Tidak ada yang bergabung, tidak ada gumpalan). Saya akan merilis layanan "selalu aktif" lain yang menggunakan driver MariaDB JDBC dengan cara yang sama.
Saya memutuskan untuk menggunakan driver MariaDB JDBC setelah (kembali) melihat kode sumber: dibandingkan dengan kode sumber driver Oracle JDBC MySQL, kode sumber driver MariaDB JDBC jauh lebih mudah dibaca dan dimengerti.

Tapi saya mendapatkan kesan (9/2014) perkembangannya melambat (tautannya ke grafik yang menunjukkan bug yang dibuat vs. diselesaikan). Jika saya menelusuri bug terbuka, saya melihat banyak bug serius terbuka terlalu lama (masalah dengan Hibernate dan juga zona waktu / tanggal). Beberapa di antaranya mungkin bukan bug tetapi seharusnya sudah ditutup sekarang. Saya juga menemukan satu bug (via STASH-4012 ) yang harus dibuka kembali: bug CONJ-72 ditutup tetapi komentar terakhir (dari 4/2014) menunjukkan masalah tidak teratasi untuk Hibernate.

Secara keseluruhan, saya tidak menganggap driver MariaDB JDBC pengganti yang sempurna untuk driver Oracle MySQL JDBC. Saya senang terus menggunakannya untuk hal-hal sederhana (di mana semua pertanyaan diketahui sebelumnya dan diuji) untuk saat ini, tetapi saya mungkin harus beralih kembali ke driver Oracle MySQL JDBC di masa depan.

vanOekel
sumber
2
Pengembangan meningkat pada November 2014. Klik tautan 'melambat' di respons vanOekel untuk pembaruan. Ada rilis stabil baru pada Januari 2015.
David H. Bennett
2

Satu hal yang perlu diingat adalah Anda tidak punya pilihan jika ingin mendistribusikan perangkat lunak non-GPL. Jika Anda mendistribusikan perangkat lunak di bawah lisensi apa pun kecuali GPL, Oracle dapat menuntut Anda atas pelanggaran hak cipta jika Anda menggunakan driver mereka.

Demi
sumber
Anda punya pilihan. Anda dapat memberikan uang kepada Oracle dan mereka akan memungkinkan Anda untuk menggunakan klien dengan lisensi komersial!
Josef mengatakan Reinstate Monica