Connect to MySQL in XAMPP, using Java and C++

Connecting to MySQL, then accessing and manipulating databases in ApacheFriends XAMPP using Java and C++ language are/is possible with a few step. Pada dasarnya, XAMPP dari nat32.com hanya memodifikasi MySQL agar dapat dipergunakan secara efektif dalam lingkungan pemrograman PHP. Dengan sedikit langkah, service MySQL yang terintegrasi tersebut juga bisa di akses menggunakan bahasa pemrograman Java dan C++. Sehingga tidak perlu lagi memasang/install MySQL yang lain (yang baru) di luar lingkungan XAMPP.

PENTING : Pemelajaran koneksi MySQL pada XAMPP menggunakan bahasa pemrograman Java dan bahasa C++ ini dilakukan pada lingkungan sistem operasi Windows XP(32bit). Untuk pengguna Linux, hal ini tentu lebih mudah di sesuaikan karena pengguna Linux sudah mendapatkan kakas yang diperlukan (untuk pemelajaran ini) pada paket instalasinya.

Berikut adalah beberapa hal yang harus diperhatikan sebagai langkah awal menghubungkan MySQL dengan Java dan C++, antara lain ;

  1. Membuat direktori penampungan berkas pemrograman Java (dan mengaturnya sebagai classpath dalam System Variables pada Environment Variables). Misal : D:\Learning\Java
  2. Membuat direktori penampungan berkas pemrograman C++. Misal : D:\Learning\C++
  3. Mengunduh MySQL, sesuai dengan versi yang di integrasikan dalam paket XAMPP terpasang (according to XAMPP’s quick Installation, mysql should be placed on C:\xampp\mysql). Untuk mengetahui versi MySQL terintegrasi pada XAMPP dapat dilakukan melalui ;
    • XAMPP Control Panel › Help › Read Me, atau
    • Berkas readme_en.txt pada C:\xampp ,atau
    • Menggunakan peramban Web dan mengarahkan ke halaman phpmyadmin dengan URL http://localhost/phpmyadmin/.
  4. Menggunduh JDBC Driver for MySQL atau (yang di lisensikan oracle menggunakan GPLv2 sebagai) MySQL Connector/J.
  5. Mengunduh mingw-get-inst serta memasang paket (minimal untuk pemelajaran ini) g++ (C++ Compiler), Objective-C Compiler dan mingw32-make (GNU Make). Sesuai instruksi MinGWGetting Started, MinGW (GCC) Compiler Suite akan dipasang pada direktori C:\MinGW, dan mengatur C:\MinGW\bin sebagai path dalam System Variables pada Environment Variables.
  6. Mengunduh dan memasang Java SE Development Kit–JDK serta telah mengatur C:\Program Files\Java\jdk1.x.x(_xx)\bin sebagai bagian path dalam System Variables pada Environment Variables.

Connect to MySQL using Java

Berikut adalah langkah memastikan koneksi MySQL dengan Java, kemudian mengakses salah satu database pada MySQL menggunakan JDBC.

  1. Ekstrak mysql-connector-java-x.x.xx.zip ke sembarang direktori.
  2. Salin-tempel dan ektrak berkas mysql-connector-java-x.x.xx-bin.jar (dari hasil ekstrak langkah 1 di atas), di dalam direktori penampungan berkas Java (D:\Learning\Java).
  3. Dari tiga folder yang dihasilkan (com, META-INF, org), hapus folder META-INF beserta isinya.
  4. Untuk memastikan keberhasilan koneksi antara MySQL pada XAMPP dengan MySQL Connector/J ;
    • Silahkan buat berkas Java seperti berikut ;

      public class testJdbcMySQLConn {
        public static void main(String[] args) {
        try {
          Class.forName("com.mysql.jdbc.Driver");
      	System.out.println("Connect to MySQL using Java via JDBC Driver, Success!");
        } catch (Exception exc) {
          System.out.println("Fail connecting to MySQL using Java via JDBC Driver : " + exc);
        }
        }
      }
      
    • Lakukan kompilasi
    • Buka XAMPP Control Panel dan jalankan (“start”) MySQL.
    • Jalankan class hasil kompilasi berkas Java diatas.
  5. Setelah percobaan koneksi MySQL dan JDBC berhasil, berikut adalah kode untuk mengakses salah satu database yang ada (e.g mysql), lakukan seperti langkah sebelumnya menggunakan kode berkas java sebagai berikut :

    import java.sql.*;
    public class testJavaDbAccess {
      public static void main(String[] args) {
        try {
          Class.forName("com.mysql.jdbc.Driver");
    	  //gunakan format berikut ("jdbc:mysql://localhost:3306/<nama_database>?user=<nama_user>&password=<password>") atau ;
    	  Connection access = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");
    	  System.out.println("Accessing MySQL database using Java via JDBC Driver, Success!");
        } catch (Exception exc) {
          System.out.println("Fail Accessing MySQL database using Java via JDBC Driver, possible reason is/are : " + exc);
        }
      }
    }
    

Connect to MySQL using C++

Dengan asumsi bahwa MinGW (dan minimal paket yang di sebut sebelumnya) sudah terpasang, berikut adalah langkah mengakses database (e.g mysql) dalam data MySQL pada XAMPP dengan bahasa pemrograman C++ menggunakan bantuan MinGW (GCC) Compiler Suite.

Menambahkan berkas dan pustaka untuk C++
Untuk menambahkan berkas header dan penaut pustaka pemrograman C++ yang hilang dalam XAMPP, Jalankan setup.exe MySQL server yang sesuai dengan versi yang terintegrasi dalam instalasi XAMPP ;
  1. Pilih Custom pada Setup Wizard lalu klik Next.
  2. Pada Custom Setup, eksplor Developer Components dan pilih paket C Include Files/Lib Files saja.
  3. Paket yang lain seperti MySQL Server, Client Programs dan yang lainnya silahkan dinonaktifkan. Untuk menghubungkannya dengan C++, kita hanya perlu menambahkan C Include Files/Lib Files saja.
  4. Ubah tujuan instalasi, rujuk ke direktori mysql pada XAMPP (C:\xampp\mysql). Klik OK lalu Next dan Install.
  5. Pastikan pada direktori C:\xampp\mysql sudah terdapat folder include dan folder lib
Membuat pustaka client API untuk C++
  1. Salin berkas libmysql.def pada direktori C:\xampp\mysql\include dan tempelkan ke direktori C:\xampp\mysql\lib\opt.
  2. Salin berkas libmysql.dll pada direktori C:\xampp\mysql\lib\opt dan tempelkan ke direktori C:\MinGW\bin.
  3. Buka command prompt dan arahkan ke C:\xampp\mysql\lib\opt.
  4. Buat sebuah berkas pustaka client API untuk C++ dengan mengkompilasi libmysql.def dan libmysql.dll, serta memberinya nama sebagai libmysqlclient.a dengan perintah dlltool dari MinGW GCC Compiler Suite, seperti berikut ;

    C:\xampp\mysql\lib\opt›dlltool -d libmysql.def -D libmysql.dll -l libmysqlclient.a -k
    

    Hati-hati dengan case sensitif pada -d dan -D. Untuk menghindarinya, bisa menggunakan perintah berikut ;

    C:\xampp\mysql\lib\opt›dlltool --input-def libmysql.def -dllname libmysql.dll --output-lib libmysqlclient.a -k
    
  5. Pastikan berkas pustaka untuk C++ (libmysqlclient.a) sudah terbentuk pada direktori C:\xampp\mysql\lib\opt.
Menyunting berkas header mysql
Sunting berkas mysql.h yang berada pada direktori C:\xampp\mysql\include.

cari baris kode ;

#define STDCALL __stdcall

gantikan dengan ;

#undef STDCALL
#define STDCALL
Lebih lanjut tentang __stdcall, silahkan baca Calling Conventions
Membuat berkas penguji koneksi MySQL dengan C++
Berkas penguji dapat dibuat menggunakan sembarang editor teks. Simpan berkas penguji koneksi MySQL dengan C++ sebagai mysqlConnect.cpp pada direktori penampungan berkas C++ (D:\Learning\C++). Gunakan Kode berikut sebagai penguji koneksi MySQL server dan pengakses database mysql dalam server MySQL yang terintegrasi dengan XAMPP ;
#include <iostream>
#include <windows.h>
#include <mysql.h>

using namespace std;

int main(){
  // Fungsi untuk mengambil informasi dari MYSQL server menggunakan struktur sebagai berikut ;
  /*
  MYSQL * STDCALL mysql_real_connect(
		MYSQL *mysql,
		const char *host,
		const char *user,
		const char *passwd,
		const char *db,
		unsigned int port,
		const char *unix_socket,
		unsigned long clientflag
		);
  */
  MYSQL* connect;
  connect = mysql_init(NULL);

  if (mysql_real_connect(connect, "localhost", "root", "", "mysql", 0, NULL, 0) !=0) {
    cout << "Succesfully connect to MySQL server and Accessing database mysql" << endl;
  }
  mysql_close(connect);
  system("PAUSE");

  return 0;
}

Buka command prompt dan arahkan ke direktori penampungan berkas C++. Kompilasi berkas mysqlConnect.cpp tersebut diatas menggunakan perintah MinGW (GCC) Compiler Suite, (c++ atau g++ atau gcc) sebagai berikut ;
D:\Learning\C++›gcc mysqlConnect.cpp -lstdc++ -o mysqlConnect.exe -L "C:\xampp\mysql\lib\opt" -I "C:\xampp\mysql\include" -lmysqlclient

atau

D:\Learning\C++›g++ mysqlConnect.cpp -o mysqlConnect.exe -L "C:\xampp\mysql\lib\opt" -I "C:\xampp\mysql\include" -lmysqlclient

atau

D:\Learning\C++›c++ mysqlConnect.cpp -o mysqlConnect.exe -L "C:\xampp\mysql\lib\opt" -I "C:\xampp\mysql\include" -lmysqlclient
Setelah menjalankan MySQL melalui XAMPP Control Panel, eksekusi berkas mysqlConnect.exe (hasil kompilasi) sebagai penguji koneksi MySQL dan C++.

Connect to MySQL in XAMPP, using Java and C++

Published on : Jan 24, 2011. Last modified at : Jan 29, 2011.


Click to share on twitter , digg it, or save this article to del.icio.us.

article Navigation

Related to “Connect to MySQL in XAMPP, using Java and C++”.

14 Opinion for “Connect to MySQL in XAMPP, using Java and C++”.

Waw, beribet sekali ya untuk C++? Dulu untuk di Windows, saya prefer menggunakan TCC (Tiny C Compiler) untuk mengkompile source code C, sebab MinGW terlalu berat. Mending sekalian coba di Linux. :D

Oh ya Pak De. Untuk penamaan class pada Java, best practices yang di anjurkan adalah seperti ini. Contoh:

public class HelloWorld
{

}

Sedangkan fungsinya, menggunakan camelCase naming convention seperti:

public void setNamaDepan(String namaDepan)
{
   // isinya
}

mas Ganda…
Agak ribet untuk C++ ya? Tapi, yang sudah terlanjur terbiasa dengan MySQL dalam lingkungan XAMPP khan harus diakomodir juga mas. Daripada menggunakan secara ilegal yang berembel-embel visual. Yang penting khan, semangatnya (katanya Rayimas Dokter).

Terus… Terima kasih atas info naming convention untuk Java. Lama kelamaan bukan selingkuh dan main serong lagi nich :D :D.

Apa harus menggunakan XAMPP ya? Hahaha.. Saya malah mau belajar C++, kelebihannya banyak dibanding bahasa lain. :D

mas Ganda…
Jangan tengak tengok kebelakang, nanti nubruk-nubruk. :D :D
Berbahagialah yang sudah punya Apache server, MySQL, JDK, GCC dalam satu paket. Yang bisa kita lihat lebih dari XAMPP khan, 2 yang disebut pertama kendalinya di jari telunjuk kita dan tidak harus jadi background service. :P
Tentang C++, aku malah kadang-kadang jengah dengan yang namanya pointer itu.

Pak De,
Tidak apa-apa pak De. Penting juga itu untuk optimasi. Sebab bahasa tercepat saat ini kan memang C/C++, walau dibawah Assembly. Saya gak punya semuanya dalam satu paket pak De dan gak mau. :D Pengen sedikit beribet biar ngerti gimana cara memasangnya.

Pointer lah kekuatan C/C++ pak. :D

mas Ganda…
Pointer itu bagaikan pisau bermata dua, lupa delete dan/atau lupa memberikan destructor akan menjadi tidak optimal lagi, pemborosan, dan tidak efektif lagi. :) :(

Pak De,
Disitulah letak “kedisplinan” programming model C pak. :D Asyik. :D

mas harry mau nanya…
soal penempatan “mysql-connector-java-3.1.8-bin”

saya sudah menggunakan script sbb:
Class.forName(“com.mysql.jdbc.Driver”);
this.con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/jadwal”,”root”,”root”);

tapi terdapat exception: “java.lang.ClassNotFoundException: com.mysql.jdbc.Driver”

saya bingung dmn harus menaruh file “mysql-connector-java-3.1.8-bin”

saya setting classpath sbb: “C:\Program Files\Java\jdk1.6.0_18\lib\mysql-connector-java-3.1.8-bin;%CLASSPATH%”

mohon bantuannya

mas dwq…Kalau menggunakan cara tersebut, letakkan konektor mysql-connector-java-3.1.8-bin.jar pada <instalasi_jdk>\jre\lib\ext. Kemudian sesuaikan kembali classpathnya.
Lebih lengkapnya, bisa dibaca pada mysql-connector-java-3.1.8\docs\. Mudah-mudahan bisa membantu mas dwq.

mas mau nanya..
kalo ngambil data yang udah disave ke localhost ke j-creator gimana?
mohon bantuannya..

Penjelasan yg simple dan jelas. Terima kasih buat info penggunaan MySQL Connector /j -nya. Kebetulan saya lagi belajar dan mencoba menggunakan software java-based yg awalnya menggunakan PostgreSQL, namun ingin saya ubah menjadi menggunakan MySQL.

Terima Kasih.

boleh nanya… itu pake Xampp berapa .. saya menggunakan xampp 1.7.3 tidak ada file libmysql.def yang di sertakan, dan saya download di internet
http://code.haskell.org/HSQL/mingw32lib/libmysql.def
ketemu ..dan saya copas ke folder C:\xampp\mysql\include
dan copas lagi ke folder C:\xampp\mysql\lib\opt
kemudian saya jalankan perintah no 2. seterusnya tidak ada masalah

kemudian saya copas code anda…
hanya saya ketika saya compile kok

C:\MinGWStudio\mysql_test\Debug\mysql_con.o: In function `main’:
C:\MinGWStudio\mysql_test\mysql_con.cpp:22: undefined reference to `mysql_init@4′
C:\MinGWStudio\mysql_test\mysql_con.cpp:24: undefined reference to `mysql_real_connect@32′
C:\MinGWStudio\mysql_test\mysql_con.cpp:27: undefined reference to `mysql_close@4′
collect2: ld returned 1 exit status

mysql_test.exe – 3 error(s), 1 warning(s)

saya menggunakan mingw ..

lalu saya compile menggunakan command promt :
dan hasilnya file header iostream dan windows.h invalid..

mohon pencerahannya …

bahasa tercepat itu pyton pak..

kalo gak percaya cari deh jumlah bilangan prima dari 100000000000000000000000000 di C++ dan pyton…

Mas Edrian…
Saya mohon maaf tidak menyebutkan versi xamp yang saya pergunakan ketika trial error tulisan ini. Nanti akan saya coba buka versi mysql yg terintegrasi pada perkembangan versi xampp yang mas pergunakan. Apakah paket mysql utuhnya tidak lagi menyertakan berkas libmysql.def

Tentang cepat atau lambat, tulisan ini tidak saya maksudkan ke arah itu. Tetapi hanya trial tingkatan bahasa tingkat tinggi ke rendah atau sebaliknya. Demikian dulu. Nanti saya sambung via surel klo sudah sempat bongkar-bongkar. Terima kasih.

Leave an Opinion

Important : LOW isn't intended to on topic opinions, just be polite. You may use strict markup only. Opinions failing these requirement will be edited. Spam opinion won't get published.
Please, enter your real name and your valid email address (in required field). Don't worry, i'll kept your email private.










Random Learning