MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Menghubungkan Program C++ ke MariaDB

Hari ini, kami mengumumkan ketersediaan umum MariaDB Connector/C++. Bahasa C++ dikenal karena efisiensi, fleksibilitas, dan ekstensibilitasnya. Faktanya, ini sering digunakan di industri seperti fintech dan game di mana aplikasi memerlukan konkurensi dan latensi yang dapat diprediksi. Dengan MariaDB Connector/C++, pengembang dapat menggunakan konektor baru dalam aplikasi mereka untuk terhubung secara native ke MariaDB Server di tempat dan di cloud di MariaDB SkySQL.

Dalam artikel ini saya akan memperkenalkan Anda ke MariaDB Connector/C++ dengan contoh sederhana yang mendemonstrasikan interaksi create, read, update, dan delete (CRUD) dengan data yang disimpan di MariaDB. Lebih khusus lagi, saya akan membahas proses pembuatan aplikasi konsol C++ yang memungkinkan Anda melakukan operasi sederhana untuk mengelola tugas. Tapi cukup bicara, mari kita mulai!

Mengunduh dan Memasang

Untuk menggunakan MariaDB Connector/C++ Anda harus memiliki akses ke instance MariaDB Server. Ada berbagai cara untuk memulai MariaDB di komputer lokal, lokal, atau bahkan di cloud.

  1. Unduh dan instal Server Komunitas MariaDB
    1. Langsung
    2. Menggunakan gambar Docker
  2. Unduh dan instal MariaDB Enterprise Server 
  3. Terapkan dengan MariaDB SkySQL, database cloud MariaDB terbaik

Setelah menyiapkan instans Server MariaDB, Anda dapat mengikuti langkah-langkah yang disediakan dalam dokumentasi MariaDB Enterprise untuk petunjuk tentang cara mengunduh dan menginstal MariaDB Connector/C++.

Menyiapkan Server MariaDB

Dalam contoh ini, sebelum Anda dapat menggunakan konektor MariaDB C++ baru, Anda harus memiliki database dan tabel. Menggunakan klien pilihan Anda, sambungkan ke instans database MariaDB Anda dan:

1. Buat database baru dan satu tabel yang akan bertanggung jawab untuk menyimpan catatan tugas.

BUAT DATABASE JIKA TIDAK ADA todo;BUAT TABEL todo.tasks (  id INT(11) unsigned NOT NULL AUTO_INCREMENT,  deskripsi VARCHAR(500) NOT NULL,  selesai BOOLEAN NOT NULL DEFAULT 0,  PRIMARY (id)); 

2. Buat pengguna database baru yang akan digunakan Connector/C++ untuk terhubung ke MariaDB.

BUAT PENGGUNA JIKA TIDAK ADA app_user@localhost DIIDENTIFIKASI OLEH 'Password123!';BERIKAN SEMUA HAK ISTIMEWA ON todo.* KEPADA app_user@localhost;

Menghubungkan ke Server MariaDB

Sekarang setelah Anda memiliki instance database, skema, dan pengaturan pengguna, saatnya untuk beralih ke C++. Semuanya dimulai dengan membuat koneksi ke MariaDB. Tentu saja, untuk melakukannya, Anda harus menyertakan file header konektor MariaDB, khususnya conncpp.hpp, di bagian atas file tempat Anda menambahkan kode C++.

#include 

Untuk membuat koneksi, mulailah dengan mengambil Driver objek yang kemudian dapat digunakan, dalam kombinasi dengan informasi konfigurasi Java Database Connectivity (JDBC), untuk mendapatkan Connection objek.

// Instansiasi Driversql::Driver* driver =sql::mariadb::get_driver_instance();// Konfigurasi Koneksisql::SQLString url("jdbc:mariadb://localhost:3306/todo");sql::Properties properties({{"user", "app_user"}, {"password", "Password123!"}});// Buat Connectionstd::unique_ptr conn(driver->connect(url, properties ));

Untuk informasi lebih lanjut tentang fungsionalitas koneksi Connector/C++ MariaDB, pastikan untuk melihat dokumentasi resmi perusahaan kami.

Menambahkan Tugas

Setelah Anda mendapatkan Connection keberatan, Anda pergi ke balapan! Dengan menggunakan samb, dari bagian sebelumnya, Anda sekarang dapat menjalankan SQL melalui penggunaan pernyataan yang disiapkan untuk memasukkan data ke MariaDB.

// Buat PreparedStatementstd::unique_ptr baru stmnt(conn->prepareStatement("masukkan ke dalam tugas (deskripsi) nilai (?)"));// Ikat nilai ke pernyataan SQLtmnt->setString (1, deskripsi);// Jalankan querystmnt->executeQuery();

Mengambil Tugas

Menggunakan pendekatan yang sangat mirip, seperti dalam bagian terakhir, Anda juga dapat membuat Statement objek untuk mengambil dan mencetak semua catatan tugas dalam tabel tugas.

// Buat Pernyataan baru::unique_ptr stmnt(conn->createStatement());// Jalankan querysql::ResultSet *res =stmnt->executeQuery("pilih * dari tugas");// Ulangi dan cetak hasil sementara (res->berikutnya()) { std::cout <<"id =" <getInt(1); std::cout <<", deskripsi =" <getString(2); std::cout <<", selesai =" <getBoolean(3) <<"\n";}

Memperbarui Tugas

Anda juga dapat menggunakan PreparedStatement dan menentukan parameter (dan nilai) untuk mencari dan memodifikasi catatan tugas yang ada.

// Buat PreparedStatementstd::unique_ptr stmnt(conn->prepareStatement("perbarui tugas yang diselesaikan selesai =? where id =?"));// Ikat nilai ke pernyataan SQLtmnt->setBoolean(1, selesai); stmnt->setInt(2, id);// Jalankan querystmnt->executeQuery();

Menghapus Tugas

Dan, tentu saja, Anda juga memiliki kemampuan untuk menghapus data dari MariaDB dengan menggunakan DELETE SQL pernyataan dengan PreparedStatement , untuk menargetkan catatan tertentu.

// Buat PrepareStatementstd::unique_ptr stmnt(conn->prepareStatement("hapus dari tugas di mana id =?"));// Ikat nilai ke pernyataan SQLtmnt->setInt(1, id);// Jalankan querystmnt->executeQuery();

Menyatukan Semuanya

Terakhir, Anda dapat menggabungkan semuanya dalam satu contoh mandiri dengan menyalin dan menempelkan kode di bawah ini ke dalam file baru bernama tasks.cpp . Contoh di bawah ini menggabungkan semua operasi CRUD yang telah saya lalui ke dalam kumpulan fungsi yang dapat dijalankan dari main metode.

#include  #include #include 
// Hapus catatan tugas (ditunjukkan dengan id)void deleteTask(std::unique_ptr &conn, int id) { try { // Buat PreparedStatement baru std::unique_ptr stmnt(conn->prepareStatement("hapus dari tugas di mana id =?")); // Mengikat nilai ke pernyataan SQL stmnt->setInt(1, id); // Jalankan kueri stmnt->executeQuery(); } catch(sql::SQLException&e){ std::cerr <<"Kesalahan menghapus tugas:" < prepareStatement("perbarui tugas yang ditetapkan selesai =? di mana id =?")); // Mengikat nilai ke pernyataan SQL stmnt->setBoolean(1, selesai); stmnt->setInt(2, id); // Jalankan kueri stmnt->executeQuery(); } catch(sql::SQLException&e){ std::cerr <<"Kesalahan memperbarui status tugas:" <prepareStatement("masukkan ke dalam tugas (deskripsi) nilai (?)")); // Mengikat nilai ke pernyataan SQL stmnt->setString(1, description); // Jalankan kueri stmnt->executeQuery(); } catch(sql::SQLException&e){ std::cerr <<"Kesalahan saat memasukkan tugas baru:" <createStatement()); // Jalankan kueri sql::ResultSet *res =stmnt->executeQuery("pilih * dari tugas"); // Ulangi dan cetak hasil while (res->next()) { std::cout <<"id =" <getInt(1); std::cout <<", deskripsi =" <getString(2); std::cout <<", selesai =" <getBoolean(3) <<"\n"; } } catch(sql::SQLException&e){ std::cerr <<"Kesalahan memilih tugas:" <connect(url, properties)); // Gunakan argumen untuk menentukan eksekusi langkah selanjutnya if (!strcmp(argv[1],"showTasks")) { showTasks(sambungan); } else if (!strcmp(argv[1],"addTask")) { if (argc !=3) { std::cout <<"Argumen tidak valid"; kembali 1; } addTask(sambungan, argv[2]); } else if (!strcmp(argv[1],"updateTaskStatus")) { if (argc !=4) { std::cout <<"Argumen tidak valid"; kembali 1; } updateTaskStatus(sambungan, atoi(argv[2]), argv[3]); } else if (!strcmp(argv[1],"deleteTask")) { if (argc !=3) { std::cout <<"Argumen tidak valid"; kembali 1; } deleteTask(sambungan, atoi(argv[2])); } // Tutup Koneksi samb->tutup(); } catch(sql::SQLException&e){ std::cerr <<"Kesalahan Menghubungkan ke Platform MariaDB:" < 

Anda juga dapat menemukan sumber lengkap dari contoh aplikasi ini di sini. Sumber untuk contoh C++ ini terdapat dalam repositori untuk aplikasi yang disebut “TODO”, yang juga mencakup front-end web dan beberapa aplikasi contoh integrasi konektor MariaDB lainnya yang mencakup banyak bahasa.

Menjalankan Aplikasi

Dalam lingkungan Linux, setelah Anda membuat tasks.cpp , Anda dapat membuat file yang dapat dieksekusi, yang disebut tugas, menggunakan kompiler C++.

$ g++ -o tugas tugas.cpp -std=c++11 -lmariadbcpp

Dengan menggunakan file yang dapat dieksekusi, Anda dapat menyediakan berbagai nilai argumen untuk menguji operasi CRUD.

  • Memasukkan catatan tugas baru dengan memberikan nilai untuk deskripsi.
./tasks addTask 'Tugas Baru'
  • Mencetak semua catatan tugas.
./tasks showTasks
  • Memperbarui nilai penyelesaian catatan tugas. Cukup berikan nilai untuk id dan selesai.
./tasks updateTaskStatus 1 1
  • Hapus catatan tugas dengan memberikan nilai id.
./tasks deleteTask 1

Baru Awal

Semoga, Anda senang melihat betapa mudahnya mulai menggunakan C++ dengan MariaDB. Meskipun ini adalah pengantar yang bagus untuk pemrograman C++ dengan MariaDB, kami baru mulai menggali permukaan dari apa yang mungkin!

Ingin menyelam lebih dalam ke MariaDB Connector/C++? Pastikan untuk memeriksa Pusat Pengembang MariaDB untuk mengetahui lebih banyak lagi konten tentang konektor C++ baru serta banyak fitur dan kemampuan MariaDB lainnya.

Temukan dokumentasi perusahaan MariaDB Connector/C++.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manajemen Kunci SSL dan Enkripsi Data MySQL dalam Transit

  2. Cara Menginstal dan Mengonfigurasi MaxScale untuk MariaDB

  3. Mengumumkan ClusterControl 1.7.3:Peningkatan Dukungan PostgreSQL &Opsi Penerapan Cloud Baru

  4. Bagaimana ELT() Bekerja di MariaDB

  5. Menjalankan ProxySQL sebagai Wadah Pembantu di Kubernetes