The Way Of Life
Google

Sunday, September 17, 2023

MySQL - Error 1062 duplicate entry For Primary

Error 1062 duplicate entry For Primary

Sometimes if you work with MySQL/MariaDB database, you’ve got "suprises". One day ago I’ve got MySQL Error when I de-activated primay key on one table, and then re-activate. I’ve got an error like the image above.

When I check the record that show on error message, I found that record is already unique. It shouldn't be cause an error. 

Unique Record


Then, how I did solve those problem.

Well, maybe Solution Number one below solution is not quite practical or good enought but it's work for me.

Solution Number One

        Step 1. First  Backup your Database, if something goes wrong.

        Step 2. run SQL : SELECT DISTINCT * FROM sourcetable

        Step 3. Export or Copy Paste the query result to Excel File

        Step 4. Create SQL Script to inserting data


        Step 5. DELETE source table 

        Step 6. Run SQL Script that we have created on Excel to inserting data.

Re-Active Primary Key

        Step 7. Re-Activate Primary Key on source table


Solution Number Two:

This is quite similiar with solution number one, but this is more "advanced" and  using with pure SQL.

        Step 1. "Clone" table from source table with SQL to clone table

                    INSERT TNTO clone_table SELECT * FROM source_table

        Step 2. DELETE source table 

        Step 3. Insert table source from clone table using SELECT DISTINCT

                    INSERT TINO source_table SELECT DISTINCT * FROM clone_table

        Step 4.  Re-Activate Primary key on source table

Re-Active Primary Key


Maybe it's a MariaDB bug or MariaDB/MySQL still keeps primary key records when we deactivate the primary key on another table/system that we don't know yet if we are not cleaning the data ( delete all). Then when we re-activate the primary key, it causes the error message above.

Good Luck. Hope this is useful.

Software :

MySQL / MariaDB ver 10.4.25



Labels: , , , , ,

Sunday, July 16, 2023

MySQL Connection Run Time error -2147467259 (80004005)

Run Time error -2147467259 (80004005)

Sometimes, when we are trying to connect MySQL/MariaDB database, it returns an error “[Microsoft] [ODBC Driver Manager] Data source name not found and no default driver specified”

In my case, When I’m using Visual Basic 6 and I never change the line of codes for the connection module, suddenly it returns an error like the above. I’m trying to find the error through the error message. 

Then, after I googled the solution, I found that I must add New Data Source on ODBC. So, I open the ODBC and add New Data Source on the System DSN tab, but it still returned an error. 


Another thought is MySQL Connector driver installed is for 32-bit, but when I checked the version it’s for 64-bit.


Again, adding a parameter on the connection string: Persist Security Info=true, inspired by my old case about the SQL Server connection string, and still not solved.

Finally, IT SOLVED by changing MySQL ODBC Driver from MySQL 8.0 Unicode Driver to MySQL ODBC 5.1 Driver.

MySQL ODBC 5.1 Driver

My Conclusion is that the MySQL ODBC 8.0 Unicode Driver has bugs, that cause when Visual Basic try to connect through the driver, the MSADO library doesn’t recognize the driver and returns an error  “[Microsoft] [ODBC Driver Manager] Data source name not found and no default driver specified”

With the same error pattern, maybe you can change the MySQL driver as I did, and you can also downgrade the driver version. I'm using version 5.01.6 (mysql-connector-odbc-5.1.6-winx64) that works to my case.


Software :

Microsoft Visual Basic 6.0
Microsoft ActiveX Data Object 6.1 Library
Microsoft Windows 10 Pro 64 bit

Labels: , , , , ,

Saturday, August 20, 2022

Aplikasi Antrian Penjemputan Anak Sekolah berbasis RFID

Simple Student Pickup System


Kali ini saya akan sharing mengenai aplikasi sederhana yang sudah saya buat. Aplikasi ini adalah solusi untuk masalah yang timbul ketika terjadikan penumpukan antrian kendaraan atau mobil pada saat murid murid di sebuah sekolah pulang dan dijemput oleh orang tua dengan menggunakan mobil. Masalah tersebut timbul karena pada saat orang tua / penjemput datang, si murid yang bersangkutan belum siap  di titik penjemputan sehingga penjemput / mobil harus menunggu murid tersebut.  Atau murid tesebut tidak tahu bahwa orang tua atau penjeput sudah datang. Kalapun tahu misalnya dengan banyaknya antrian penjemput, murid tidak tahu antrian urut berapa mobil yang akan menjemput dia, sehingga akan terjadi waktu menunggu yang cukup lama yang menyebabkan kemacetan.

Hal ini tidak akan terjadi atau jarang terjadi jika sekolah tersebut mempunyai lokasi atau luas lahan yang ideal, akan tetapi jika sekolah tersebut berada di tengah kota atau di dekat jalan raya yang ramai tentu saja akan membuat kemacetan yang cukup panjang.

Nah,  oleh karena itu dengan aplikasi sederhana ini, maka masalah itu bisa terpecahkan. Aplikasi yang saya buat cukup sederhan dan saya mengusahakan less code alias minim baris kode. Aplikasi ini saya buat menggunakan Microsoft Visual basic 6.0 kemudian dikombinasi dengan database server MySQL dan Google Data Studio. Mungkin kalau boleh dibilang dibanding aplikasi yang ada di pasaran, ini aplikasi yang paling sederhana tapi bisa memecahkan masalah yang ada.

Aplikasi ini terdiri dari 3 bagian / modul :

  1. Program pembaca RFID ( RFID reader ) yang saya buat dari Visual Basic 6.0
  2. Database Server ( MySQL ) di Web Server.
  3. Google Data Studio untuk menampilkan antrian murid yang akan dijemput.


Mifare USB RFID Reader


Cara kerja program :

  1. Pertama Aplikasi pembaca RFID akan menerima inputan dari RFID reader yang berupak kode unit kartu RFID atau sejenisnya ( bisa dalam bentuk E-KTP, SIM, atau Kartu RFID dari berbagai macam merk ). Kebetulan RFID reader yang saya gunakan adalah Mifare yang bisa didapatkan atau anda beli secara online hanya seharga ratusan ribu.

    Kemudian kode unik ini saya sambungan dengan database siswa, jadi setiap kartu atau beberapa kartu RFID bisa digunakan oleh satu kode siswa ( many to one relationship ). Hal ini mungkin terjadi jika yang menjemput siswa tersebut bisa dari ayah, ibu atau memang ada driver / penjemput khusus. 
  2. Setelah terbaca maka aplikasi akan mengecek apakah kode kartu tersebut yang sudah masuk database atau belum dan merujuk pada kode siswa yang ada jika tidak ada maka kartu akan ditolak. Tetapi jika ada maka dicek apakah kode murid tersebut sudah masuk dalam tabel antrian atau belum, jika belum maka aplikasi akan menambah record/data murid tersebut ke tabel antrian. Jika sudah maka posisi-nya adalah menghapus data murid tersebut di tabel antrian, agar tidak muncul lagi di antrian.
  3. Kemudian di sisi murid atau guru atau pihak sekolah, bisa melihatnya dari aplikasi Google Data Studio yang sudah berbentuk web based. Sehingga bisa dilihat di laptop, televisi,Smartphone, PC atau sejenisnya hanya dengan membagikan link dan menggunakan browser.

    Tampilan di Google Data Studio ini bisa kita setting untuk refresh data per 10, 20 detik atau berapapapun sesuai kebutuhan. Tampilan di Google Data Studio adalah berbentuk List berisi kolom Nama Murid, Kelas dan bisa ditambah lagi sesuai kebutuhan.
Google Data Studio


Main Goal atau Tujuan Utama dari aplikasi ini adalah “ Students Waiting for the Cars, Not Cars Waiting for the Students ” . Sehingga tidak terjadi penumpukan antrian mobil / kendaraan yang akan merugikan banyak pihak. Dengan aplikasi sederhana ini semoga bisa membuat efek yang besar di kehidupan kita sehari hari.

Hal yang bisa dikembangkan adalah aplikasi mobile untuk membaca RFID, sehingga kita tidak perlu membangun pos berisi komputer dan RFID reader serta jaringan internet untuk mengirim data ke database server. Karena terkadang tidak semua sekolah mempunyai lokasi yang ideal untuk membangun infrastruktur tersebut. Sehingga petugas cukup membawa smartphone untuk membaca kartu dari penjemput dan hanya digunakan pada saat anak sekolah pulang,

Semoga tulisan ini bisa membuat inspirasi bagi banyak orang.


Software :

Microsoft Visual Basic 6.0

Google Data Studio

Windows 10

Hardware :

Mifare RFID Reader USB Plug and Play

PC atau Laptop  yang ditempatkan di titik masuk dan penjemputan.


Labels: , , , ,

Saturday, August 13, 2022

Problem Ms Power BI Cannot Connect to MySQL Database

Jika anda sering menggunakan Power BI dari Microsoft, tentu ada kalanya anda harus menggunakan database MySQL sebagai sumber data. Kali ini saya akan berbagi pengalaman mengenai masalah yang terjadi ketika kita akan mengkoneksikan Power BI ke database MySQL.

Untuk mengkoneksikan Power BI ke MySQL kita menggunakan menu Home -> Get Data kemudian pilih More..

Power BI Get Data - MySQL

Ketika kita pilih MySQL Database maka akan muncul error


Error Power BI MySQL Connection

This connector requires one or more additional components to be installed before it can be used.

Lalu ketika kita kilik Learn more, maka kita akan diarahkan menuju website MySQL untuk mendownload :

mysql-connector-net-8.0.30.msi

Ketika anda sudah selesai menginstall connector tersebut, anda akan mendapati pesan error yang sama, sampai tulisan ini dibuat, bugs / error ini belum diperbaiki.

Solusinya adalah : Download MySQL Connector versi yang lebih rendah yaitu 8.0.24 bukan 8.0.30

MySQL Connector Net ver 8.0.24

Setelah anda selesai menginstall maka anda anda menutup aplikasi Power BI terlebih dahulu kemudian buka kembali dan anda akan bisa mengkoneksikan Power BI ke database MySQL tanpa masalah.

 

MySQL Connection Success

Semoga bermanfaat.


Software :

Microsoft Power Bi Desktop

MySQL Net Connector ver 8.0.24

Labels: , , , ,

Thursday, September 02, 2021

Cara Membuat Query Nomor Urut pada MySQL

Nomor Urut Pada hasil Query MySQL

Pada saat kita membuat sebuah Query pada database MySQL menggunakan perintah SQL. Tentu kadang kita memerlukan suatu nilai nomor urut atau urutan baris record agar ketika kita menampilkan pada interface aplikasi kita tidak perlu membuat nomor urut lagi pada codingan front end. Jadi idenya bagaimana membuat data yang kita tampilkan sudah matang sehingga codingan pada front end bisa sesimple mungkin agar mudah di-maintenance.

Ada dua cara yang sudah pernah saya coba yaitu :

1. Menggunakan perintah ROW_ NUMBER(), perintah ini hanya disupport oleh database MySQL versi  8 ke atas, jadi jika anda menggunakan database MySQL  versi lama perintah ini tidak bisa dieksekusi oleh MySQL.                                                                      

SELECT ROW_NUMBER() OVER () AS NoUrut,..FROM table


2. Menggunakan perintah di bawah ini

SET @Urut = 0;

SELECT @Urut := @Urut + 1 as NoURut,fs_kd_pekerjaan,fs_nm_pekerjaan FROM tm_pekerjaan


Perintah ini bisa digunakan untuk database MySQL versi 8 ke bawah ( versi lama ). Untuk versi baru juga bisa banget. Jadi cara nomor 2 ini bisa digunakan untuk semua versi MySQL.

Mana  cara yang lebih baik dari kedua cara tersebut?

Setelah saya bandingkan untuk memproses data yang sedikit kedua cara tesebut tidak ada bedanya lama prosesnya jika kita memakai ukuran waktu tunggu manusia. Jika menggunakan ukuran waktu tunggu mesin komputer yaitu  beda 0.00 sekian detik.

Cara Pertama (134 total, Query took 0.0033 seconds.)

Cara Kedua  (134 total, Query took 0.0019 seconds.)

Tetapi jika  data yang diproses sangat banyak (puluhan ribu record lebih) cara kedua lebih saya sarankan karena jauh lebih cepat. Tetapi jika anda ingin mencobanya sendiri silakan, nanti bisa share di sini. 

Mengapa fungsi ROW_NUMBER lebih lambat?

Karena fungsi ROW_NUMBER tidak sesederhana itu, fungsinya jauh lebih kompleks, untuk detail penggunaan ROW_NUMBER yang lebih lengkap, anda bisa lihat disini.

Semoga tips ini bermanfaat.

Labels: , , ,

Wednesday, September 16, 2020

Beberapa Sebab Captcha Tidak Muncul

Captcha tidak muncul


Jika kita membuat sebuah aplikasi berbasis web, tentu pada form login tidak lupa kita menggunakan kode captcha untuk keamanan sistem dan memastikan bahwa yang login adalah human alias manusia bukan mesin / bot.

Berikut ini saya bagikan beberapa sebab atau masalah yang menyebabkan kode captcha tidak muncul atau error, dan tentu saja beserta solusinya. Semoga bisa menambah wasasan kita semua.

  1. Directory captcha tidak Full Access. Hal ini menyebabkan aplikasi tidak bisa membuat image captcha pada direktori tersebut, sehingga gambar atau image captcha tidak muncul. Solusinya adalah setting directory captcha anda menjadi full access. Bisa menggunakan perintah chmod pada linux, atau menggunakan kontrol panel bawaan hosting.
  2. Jika anda menggunakan PHP untuk membuat aplikasi, pastikan GD Library enabled, karena jika tidak aplikasi PHP anda tidak bisa membuat image captcha, cara mengeceknya bisa menggunakan phpinfo, anda bisa melihat caranya disini.
  3. Jika anda berganti hosting atau hosting tempat anda melakukan migrasi / update, biasanya apache web server-nya akan diupdate versinya. Nah file .htaccess yang berisi setting konfigurasi akses folder / direktori biasanya ada sedikit perubahan sintak yang nantinya akan berefek pada akses folder captcha. Coba cek pada file .htaccess, pada baris RewriteRule ^(.*)$ index.php/$1 [L] diganti menjadi RewriteRule ^(.*)$ index.php?/$1 [L], ditambah tanda tanya (?) pada akhir index.php. Kasus ini biasanya terjadi ketika kita atau hosting yang kita sewa melakukan update Apache Web Server.
  4. Username atau Password database server salah, captcha tidak muncul karena password database salah atau berubah. Hal ini menyebabkan image captcha tidak ter-generate. Hal ini kadang terjadi pada saat migrasi hosting, username database hilang atau tidak ikut dalam proses migrasi ( biasanya terjadi pada shared hosting ).

Semoga  bermanfaat.


Labels: , , , , ,

Thursday, February 13, 2020

Cara Menghilangkan Karakter "Enter" di MySQL

Kali ini saya ingin berbagi tips untuk menghilangkan karakter "Enter" atau "New Line" pada data di database MySQL. Bagaimana karakter "Enter" ini bisa masuk di data salah satunya adalah karena model entrian data yang mengharuskan kita menekan tombol Enter agar cursor turun ke baris berikutnya seperti gambar di bawah ini. Berikut pengalaman yang saya alami yang mengharuskan saya menghilangkan karakter "Enter" masuk ke data. Aplikasi web yang dibangun di perusahaan saya menggunakan database MySQL sedangkan untuk aplikasi front end menggunakan ExtJS dan PHP ( CodeIgniter ). 

Form Inputan ExtJS pada entrian alamat

Karena ada kebutuhan untuk upload data ke pihak pemerintah yaitu OJK ( Ototitas Jasa Keuangan ) yang mengharuskan data debitur dikonversi menjadi data bebasis file text. Masalah yang timbul adalah dalam proses konversi ini adalah jika ada karakter "Enter" atau "New Line" pada data, maka data yang seharusnya 1 baris ( 1 data ) berubah menjadi lebih dari satu karena ada karakter "Enter" pada data alamat. Berikut saya berikan 2 cara menghilangkan karakter "Enter" pada MySQL:

  1. Jika data sudah terlanjur masuk ke dalam database MySQL, ketika load data anda bisa menggunakan perintah SQL yaitu SELECT REPLACE(alamat,'\n',' ') AS alamat FROM tabel. Yaitu menggunakan fungsi REPLACE, ganti karakter "Enter" menjadi spasi / space.
  2. Pada saat memasukan data ke database MySQL, gunakan fungsi PHP yaitu str_replace, contohnya pada PHP (CodeIgniter) yaitu : str_replace("\n"," ",$val->alamat);. Yaitu mengganti karakter Enter menjadi spasi.



Data alamat ketika sudah dihilangkan karakter "Enter"nya

Semoga bermanfaat.

Labels: , , ,

Friday, July 12, 2019

Cara membongkar isi Function / Procedure di database MySQL

String Function di proc.myd - MySQL

Tulisan ini merupakan kelanjutan dari tulisan saya sebelumnya. Setelah berhasil mengambil backup harian dari database MySQL server yang terkunci. Akhirnya saya berhasil me-restore database ke sever yang baru. Aplikasi web sudah bisa berjalan, akan tetapi ketika saya coba transaksi muncul error, bahwa mysql tidak menemukan function yang dituju. Karena aplikasi yang kantor saya ini programmer yang membuat aplikasi sudah resign, tentu saja hal yang seharusnya sederhana menjadi rumit. Membongkar program orang lain lebih sulit karena kita harus menyelami logika programmer yang membuat program tersebut. Setelah saya cari function tersebut di source code aplikasi ternyata tidak ketemu, karena ternyata function tersebut dibuat di database MySQL, dan masalahnya backup otomatis harian di server lama tidak menyimpan function, hanya table saja. Mungkin karena opsi backup otomatisnya, karena jika menggunakan PHPmyAdmin, opsi untuk membackup database beserta function itu ada.

Akhirnya saya mencoba mengkontak programmer lama, yang kebetulan masih mau dan berbaik hati masih membantu. Dan memberikan source function yang saya butuhkan, akan tetapi tidak berhenti sampai disitu, masih ada procedure yang dipanggil oleh function yang sebelumnya dan dia tidak menyimpan source-nya. Akhirnya saya mencoba browsing di internet, dimana sebenarnya database MySQL menyimpan string function. Awal saya mencoba mencari string text nama function di backup database, akan tetapi saya tidak menemukannya. 

lokasi file proc.myd di folder mysql

Dan ternyata MySQL menyimpan string function di folder mysql bukan folder database yang bersangkutan. MySQL menyimpan function dan stored procedure pada file proc.myd di folder mysql. Dari file inilah kita harus meng-ekstrak string untuk kita buat function kembali melalui query pada MySQL. Memang string yang tersimpan pada file tersebut tidaklah "bersih" karena akan banyak "string aneh" yang digunakan mysql untuk membaca function tersebut secara sistem. Tetapi hal tersebut sudah lebih dari cukup, string tersebut sudah seperti mendapatkan "berlian" yang kotor karena tanah, yang hanya perlu dicuci dengan air supaya bersih.

Untuk mengambil file tersebut, saya menggunakan cara yang saya tulis sebelumnya, karena server database tersebut terkunci ( locked ), meskipun service mysql-nya ON tetapi saya tidak bisa mengakses service tersebut, sehingga harus dengan cara "bar bar', yaitu mengambil / copy file tersebut untuk saya ektrak (lihat isinya) manual menggunakan Notepad ++.

Semoga bermanfaat bagi teman teman.

Tools :


related links :



Labels: , , , ,

Sunday, September 01, 2013

Import file xls ke MySQL

Setelah mencari cara import file .xls ke database MySQL melalui Google, akhirnya saya menemukan caranya di link ini. Jika anda menggunakan database MS SQL Server hal itu tidak menjadi kendala karena pihak Microsoft telah memberi fasilitas ini sejak SQL Server 2000 bahkan mungkin dari SQL Server 7. Tetapi jika anda ingin mengimport data dari file Excel yang berektensi .xls melalui MySQL anda harus menyimpan dalam format .csv terlebih dahulu. Berikut caranya :
  1.  Simpan file xls ke dalam format .csv dengan cara pilih menu Save As -> Other Format -> CSV, misal nama file-nya produk.csv
  2. Buat database pada MySQL terlebih dahulu, misal kita ingin mengimport data produk, buat database dengan nama produk, kemudian buat table t_produk, kemudian buat field kode_produk, nama_produk.
  3. Kebetulan saya menggunakan MySQL Administrator yang merupakan tools official dari MySQL, pilih menu Tools -> MySQL Query Browser. Kemudian ketik script query seperti dibawah ini:
  LOAD DATA LOCAL INFILE 'D:\\data\\produk.csv' INTO TABLE produk.t_produk FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (kode_produk, nama_produk); 

Kemudian jalankan Query tersebut.
Memang saya akui tools MySQL Administrator, kurang "manusiawi" atau istilah keren-nya kurang user friendly. Berbeda dengan tools pihak ketiga seperti Navicat, HeidiSQL yang jauh lebih "manusiawi". Cuman jika anda bisa menggunakan tools yang kurang "manusiawi", maka bisa dibilang anda "LAKI BANGET" :)

Berbeda lagi jika anda menggunakan Ms SQL Server, jelas disini Microsoft sangat memanjakan penggunanya, Anda hanya perlu klik kanan pada database, pilih source yaitu file .xls anda, kemudian pilih destination, yaitu table yang akan dituju, jika belum ada ada pilihan create destination table. Tekan OK, done. Disini bisa dibilang Microsoft sangat jago dalam membuat tools wizard yang user friendly. Semoga bermanfaat.

Tools : MySQL Workbench, Ms Office 2007, SQL Server 2000.


Labels: , , , ,

Monday, August 20, 2012

The Man Behind The Gun

Belum lama ini saya menemui kasus pada aplikasi yang digunakan sebuah perusahaan, aplikasi lama dibuat menggunakan bahasa pemrograman Visual Basic dan database MySQL. Suatu kali ada kebutuhan untuk meng-query data sebanyak 10 ribuan record, tetapi respon yang dihasilkan sangat lama sampai 15 menit, kemudian kami limit menjadi 1000 kemudian 100 , akan tetapi untuk hasil 100 record dengan waktu yang dibutuhkan saya anggap terlalu lama. Saya pikir apakah MySQL selambat itu? Karena saya bukan orang yang cukup lama berkecimpung di bidang MySQL, akhirnya saya bertanya ke rekan yang mempunyai bisnis server pulsa dan kebetulan dia menggunakan produk aplikasi VRE ( Voucher Refill Engine) yang dibuat dengan Visual Basic dan dengan database MySQL. Dia mengatakan aplikasi yang dia gunakan sangat handal dan stabil, bahkan sehari bisa menghandle 50 ribuan transaksi bahkan jika event tertentu bisa sampai 100 ribuan transaksi dan tidak pernah masalah. Dia memang menggunakan aplikasi yang banyak dipakai pebisnis server pulsa besar, dan memang programmer yang membuatnya spesialis di dibidangnya. Saya akhirnya mengambil kesimpulan bahwa desain program atau settingan database pada program yang lambat tersebut tidak maksimal atau salah setting. Terbukti MySQL sangat handal digunakan untuk transaksi yang butuh kecepatan dan kestabilan tinggi. Sebenarnya tidak perduli apakah database-nya MySQL, SQL Server, Oracle dan sebagainya, yang lebih penting adalah The Man Behind The Gun.

Labels: , , ,

Thursday, September 29, 2011

Source Code Sederhana


Belum lama ini saya mendapati source code jadul, peninggalan seorang programmer, dari sekitar 25 modul yang dia buat. Saya dibuat terpukau dengan teknik coding yang dia miliki, sebenarnya tidak ada yang special dari tekniknya. Yang membuat special adalah kesederhanaan tekniknya, dari segi interface yang dibuat sangat simple dan intuitif, teknik penulisan code yang sangat rapi, dan satu lagi dia tidak menggunakan ocx atau komponen pihak ketiga manapun. Semua modul dia buat dengan komponen murni Visual Basic 6, dengan database MySql dengan koneksi ODBC. Dibalik kesederhaan teknik codingnya yang murni procedural tanpa menggunakan teknik class programming, dia menyisipkan berbagai fitur yang lumayan mumpuni pada jaman dulu yaitu enkripsi MD5 dan AES serta anti SQL Injection. Modul yang dia buat juga mampu untuk berintegrasi dengan system Clipper (text mode) dengan server Linux Ubuntu yang memang sebelumnya sudah terpasang.
Dan ada lagi yang membuat saya semakin terpukau dengan kemampuan programmer ini adalah kemampuan untuk membuat User Manual dan System Manual yang sangat rapi. Hal ini biasanya menjadi titik lemah programmer adalah malas atau kurang bagus dalam membuat manual. Tidak hanya rapi, layout User Manual dibuat sangat detail dan dengan layout di atas rata – rata. Memang belum setingkat User Manual Nokia atau Sony Ericsson tapi untuk kelas lokal sudah sangat bagus.
Untuk paket setup instalasi , dia masih menggunakan paket bawaan Visual Basic, karena memang tidak ada ocx tambahan dari pihak ketiga.
Interface yang dia buat ini mengingatkan saya pada sebuah aplikasi salah satu bank terbesar di Indonesia ketika saya akan membuat rekening baru, interfacenya sangat simple tapi powerfull, karena jelas aplikasi di bank membutuhkan kehandalan system bukan interface yang terlalu megah.
Sistem yang dia buat juga jarang bermasalah karena teknik error traping dan coding yang rapi, sehingga bisa dibaca oleh programmer berikutnya. Tapi sayang sekali modul modul yang dia buat dihentikan pengembangannya karena kebijakan perusahaan.
Tapi dengan segala keterbatasan yang dia miliki, saya angkat topi terhadap kemampuan programmer tersebut.Sebuah kemampuan yang jarang sekali ada.
"Simplicity is the key to brilliance"
Bruce Lee

picture from here

related links :

Labels: , , ,

Tuesday, June 28, 2011

How to Connect Java to MySQL



After we learn how to connecting Java Program to Microsoft SQL Server, now we learn to connecting our java program to MySQL.

So we must prepare tools for that, and the tools is:

1. NetBeans IDE 7.0, you can download here.
2. MySQL 5.0 , and you can download here.
3. JDBC Driver for MySQL, you can download on this site. Add this driver to our Java Project library that we will make it.

First, we must create project Java on NetBeans IDE, for the example ConnectMySQL.
And then create packages by right click on Source Packages and choose New -> Java Packages and create name on that packages for the example same with the Project Name Connect MySQL.

After that, create one class by right click on our new packages , and choose New -> Java Class and create our New Java Class with MySQLConnection.java and type or copy paste this code on our new Java Class.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

class MySQLConnection{
Connection Connect;
public Connection ConnectDB(){
String url = "jdbc:mysql://localhost/test";
try{

Class.forName("com.mysql.jdbc.Driver");
Connect = DriverManager.getConnection(url, "root", "root");

}catch(ClassNotFoundException e){
System.out.println("Driver Load Failed!");
}catch(SQLException e){
System.out.println("Connection Failed!");
}
return Connect;
}


public static void main(String[] abc){
Connection Con = new MySQLConnection().ConnectDB();
if(Con != null){
System.out.println("Connection Succesfull!");
}else{
System.out.println("Connection Failed!");
}
}
}

If you have finished, then we must create New Java Form by right click on MySQLServer packages and then choose New -> JFrame Form. And create one button and name on it with "Test Connection MySQL". And then copy paste this code to our new button.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Connection con = new MySQLConnecTautantion().ConnectDB();
try{
if(con != null){
JOptionPane.showMessageDialog(null, "Connection Succesfull!");
}else{
JOptionPane.showMessageDialog(null, "Connection Failed!");
}
}catch(Exception e){

}
}

and do the same thing like our Java to SQL Server project.

Labels: , , ,