Set Classpath Library JDBC

Kemaren si Aa’ nanya ke gw tentang koneksi dari java ke oracle. Sebenernya inih gampang c yah. Tinggal pake IDE terus tambahin library, trus bikin class buat buka koneksi. Sayangnya rekuesan yang gw terima, gak boleh pake IDE. Gak tau apa maunya si Aa’, tapi ya sudahlah… Sebagai adek yang baek, gw kasih tau caranya. Dan ternyata, gw juga gagal!

Kesalahan yang gw lakukan adalah, gw gak tau caranya nge-set classpath jdbc di library java. Dan kalo udah berhasil nge-set classpath, nanti juga berhasil.

Sebenernya ada beberapa cara yang gw lakukan terkait hal ini… yaitu:

1. Download jdbc di situs oracle.

Downloadnya di situs ini. Sebenernya, kalo windows, ini bisa diambil langsung… di tempat instal oracle, terus ke direktori tertentu. Anggap kamu nginstall oracle 11g rilis 2 di drive D:, alamat library-nya ada di D:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib. Di folder tersebut, ada 2 versi ojdbc. Satunya ojdbc6.jar, satunya lagi ojdbc6_g.jar. Sebenernya 2 itu sama ajah c, cuma ada bedanya… gw juga lupa apa. Masalah compile gitu? Entah apapun itu, gw pakenya yang gak pake huruf g. Kalo di linux, gw gak tau… Makanya gw download, bukan nyari di tempat nginstallnya.

2. Bikin class koneksi sebagai berikut:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
 
public class Koneksi{ 
   private final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver"; 
   private final String DB_URL="jdbc:oracle:thin:@//localhost:1521/XE"; 
   private final String USER ="uname"; 
   private final String PASSWORD="pwd"; 
   private Connection conn = null; 
   
   public void bukaKoneksi(){ 
       boolean flag = false; 
       try{ 
	  Class.forName(JDBC_DRIVER); 
       }catch(Exception e){ 
	  System.out.println("Error: "+e); 
          flag = true; 
       } 
       /*if(!flag){ 
	  try{ 
	     conn = DriverManager.getConnection(DB_URL,USER,PASSWORD); 
	  }catch(Exception e){ 
	     System.out.println(e.getMessage()); 
          } 
	  
       }*/ 
   } 
   public Connection getConn(){ 
	return conn; 
   } 
}

Standar kan yah?! Iya! Standar… Jadi gw coba compile, terus bikin class buat ngejalanin gini:

public class Main{ 
   public static void main(String args[]){ 
      Koneksi k = new Koneksi(); 
      k.bukaKoneksi(); 
   } 
}

Dan ternyata, yang gw dapetin adalah Error… ClassNotFoundException! Driver-nya gak kebaca, sodara2! Gw nyari2, kalo di windows, ternyata bisa copy-in di bagian lib\ext dari direktori penginstalan Java. Jadi kalo kamu punya java 64 bit di mesin kamu (Windows 7), kemungkinan letaknya di “C:\Program Files\Java\jdk1.7.0_55\jre\lib\ext“. Kalo udah gini, program kamu bakal berhasil dijalanin tanpa error. Tapi… sayangnya, ini gak berlaku di linux. Gw gak ngerti kenapa.

Walopun gitu, terlepas dari bisa atau gak, cara di atas sebaiknya gak kamu lakuin yah… Karena library dari compiler sebaiknya gak kamu tambahin apapun. Yang perlu dilakukan yaitu nambahin classpath dengan value berupa path direktori tempat peletakan library jdbc-nya (ojdbc6.jar yang tadi). Kalo di linux yang gw lakukan gini:

di terminal, ketikin:

sudo gedit ~/.bash_profile

dan kebuka sebuah file, tambahin baris gini

CLASSPATH=$CLASSPATH:/home/user/Documents/jdbc/ojdbc6.jar 
export CLASSPATH

Yang “/home/user/Documents/jdbc/ojdbc6.jar”, itu merupakan path tempat peletakan si library jdbc. Terus save, keluar deh… Kalo di windows, bisa pake:

set classpath=E:\JDBC\ojdbc6.jar;.

Jangan lupa buat nambahin titik koma sama titik di akhirnya, yah. Gw coba di komputer Aa’, dan kelupaan ngasi titik, jadinya gak bisaan gitu. Lebih jelasnya, kamu bisa liat di link video ini. Kalo dah ngatur kayak gitu, kamu bisa compile kode java kamu dengan nyaman… Kayak biasa ajah compile sama nge-run Nya.

PS: Pastiin classpath-nya bener pake command “echo $CLASSPATH”. Untuk nama variabel, sifatnya case sensitive lhoh yah.. Jadi jangan sampe salah.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s