Alhamdulillah bisa ngeblog lagi.. disini saya ingin menshare hasil presentasi saya kemaren di matakuliah Object Oriented Programming.. disini saya membahas tentang Inheritence atau turunan. jadi pertama saya punya class Database dan kelas tersebut saya turunkan ke kelas DbMySQL dan kelas DbOracle. Jadi dikelas Database tersebut sudah terdapat 3 method yaitu konfigurasi, insert, dan select. untuk insert dan select sendiri dalam mysql dan oracle querynya sama jadi dapat langsung dibuat di database dan nanti tinggal di turunkan. sedangkan untuk konfigurasi pastinya beda antara mysql dan oracle, jadi untuk methode konfigurasi saya bikin abstrak jadi nanti untuk di klas DbMysql dan DbOracle dapat diimplement sendiri dengan cara konfigurasi masing2 database. Disini saya hanya menyediakan satu tabel yaitu tabel matakuliah untuk dijadikan simulasinya..
jadi di mysql dan oracle sama-sama terdapat tabel matakuliah. jadi langkah pertama membuat database dikedua jenis database tersebut dengan diisi tabel matakuliah. lalu membuat class Matakuliah yang isi parameternya id,nama,dosen serta jangan lupa setter getternya
public class Matakuliah {
private String id;
private String nama;
private String dosen;
public Matakuliah() {
}
public String getDosen() {
return dosen;
}
public void setDosen(String dosen) {
this.dosen = dosen;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
}
setelah itu buat class Database sebagai kelas induk
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class Database {
abstract public Connection getKonfigurasi();
public void insert(Matakuliah mk){
try {
PreparedStatement ps=getKonfigurasi().prepareStatement("insert into matakuliah values(?,?,?)");
ps.setString(1, mk.getId());
ps.setString(2, mk.getNama());
ps.setString(3, mk.getDosen());
ps.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void getAll(){
try {
Statement st=getKonfigurasi().createStatement();
ResultSet rs=st.executeQuery("select *from matakuliah");
List<Matakuliah> list=new ArrayList<Matakuliah>();
while(rs.next()){
Matakuliah mk=new Matakuliah();
mk.setId(rs.getString("id"));
mk.setNama(rs.getString("nama"));
mk.setDosen(rs.getString("dosen"));
list.add(mk);
}
for(Matakuliah mk : list){
System.out.println("");
System.out.println("-------------------");
System.out.println("ID Matakuliah : "+mk.getId());
System.out.println("Nama Matakuliah : "+mk.getNama());
System.out.println("Dosen : "+mk.getDosen());
System.out.println("-------------------");
}
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
lalu buat class DbMySQL untuk turunan dari class Database
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DbMySQL extends Database{
private Connection conn;
@Override
public Connection getKonfigurasi() {
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String db="jdbc:mysql://localhost:3306/presentasi";
String user="root";
String pass="root";
conn=DriverManager.getConnection(db, user, pass);
return conn;
} catch (SQLException ex) {
Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (ClassNotFoundException ex) {
Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
} catch (InstantiationException ex) {
Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (IllegalAccessException ex) {
Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
}
buat class DbOracle sebagai turunan dari class Database
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DbOracle extends Database{
private Connection conn;
@Override
public Connection getKonfigurasi() {
try {
try {
Class.forName("oracle.jdbc.OracleDriver").newInstance();
String db="jdbc:oracle:thin:@localhost:1521:XE";
String user="bah";
String pass="teh";
conn=DriverManager.getConnection(db, user, pass);
return conn;
} catch (SQLException ex) {
Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (ClassNotFoundException ex) {
Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
} catch (InstantiationException ex) {
Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (IllegalAccessException ex) {
Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
}
setelah itu buat class untuk simulasinya atau untuk demo program nya..
import java.util.Scanner;
public class DemoDatabase {
public static void main(String[] args) {
int status;
int pilihanMysql = 0;
int pilihanOracle = 0;
boolean keluar = false;
boolean keluarAll=false;
Database db;
do{
System.out.println("=====PRESENTASI MATAKULIAH OOP=======");
System.out.println("");
System.out.println("Pilih Database yang ingin di pakai ?");
System.out.println("1. MySQL");
System.out.println("2. ORACLE");
System.out.println("3. Keluar");
System.out.print("Pilih nomor : ");
Scanner scan;
scan = new Scanner(System.in);
status = Integer.parseInt(scan.nextLine());
do {
if (status == 1) {
keluar=false;
db = new DbMySQL();
System.out.println("");
System.out.println("Database MySQL");
System.out.println("==============");
System.out.println("1. Insert data");
System.out.println("2. Lihat data");
System.out.println("3. Keluar");
System.out.print("pilih : ");
scan = new Scanner(System.in);
pilihanMysql = Integer.parseInt(scan.nextLine());
if (pilihanMysql == 1) {
Matakuliah mk = new Matakuliah();
System.out.print("Masukkan ID Matakuliah : ");
scan = new Scanner(System.in);
mk.setId(scan.nextLine());
System.out.print("Masukkan Nama Matakuliah : ");
scan = new Scanner(System.in);
mk.setNama(scan.nextLine());
System.out.print("Masukkan Dosen : ");
scan = new Scanner(System.in);
mk.setDosen(scan.nextLine());
db.insert(mk);
System.out.println("");
System.out.print("Semua Data Matakuliah Di Database Oracle");
db.getAll();
} else if (pilihanMysql == 2) {
System.out.println("");
System.out.print("Semua Data Matakuliah Di Database MySQL");
db.getAll();
} else if (pilihanMysql == 3) {
keluar = true;
} else {
System.out.println("pilihan salah");
}
} else if (status == 2) {
keluar=false;
db = new DbOracle();
System.out.println("");
System.out.println("Database Oracle");
System.out.println("==============");
System.out.println("1. Insert data");
System.out.println("2. Lihat data");
System.out.println("3. Keluar");
System.out.print("pilih : ");
scan = new Scanner(System.in);
pilihanOracle = Integer.parseInt(scan.nextLine());
if (pilihanOracle == 1) {
Matakuliah mk = new Matakuliah();
System.out.print("Masukkan ID Matakuliah : ");
scan = new Scanner(System.in);
mk.setId(scan.nextLine());
System.out.print("Masukkan Nama Matakuliah : ");
scan = new Scanner(System.in);
mk.setNama(scan.nextLine());
System.out.print("Masukkan Dosen : ");
scan = new Scanner(System.in);
mk.setDosen(scan.nextLine());
db.insert(mk);
System.out.println("");
System.out.print("Semua Data Matakuliah Di Database Oracle");
db.getAll();
} else if (pilihanOracle == 2) {
System.out.println("");
System.out.print("Semua Data Matakuliah Di Database Oracle");
db.getAll();
} else if (pilihanOracle == 3) {
keluar = true;
} else {
System.out.println("pilihan salah");
}
}else if(status==3){
keluarAll=true;
}
} while (keluar == false);
}while(keluarAll==false);
}
}
program ini nantinya masih jalan di console/terminal/cmd saja jadi belum ada tampilan GUI namun sudah dapat digunakan untuk melakukan proses insert serta select dari database database tersebut.
dibawah ini tampilan running program di console : dapat juga di jalankan di cmd sebab java itu multiplatform tinggal di compile dan dijalankan.
untuk source dapat didownload di bawah ini :
oh ya untuk driver mysql dan oracle nya itu saya exstrack dari driverJdbc .jar yang mysql dan oracle miliki.. karena ini masih manual jalan di console maka untuk mengimport drivernya pun saya lakukan dengan cara manual dengan cara mengekstraknya. 😀
http://bahrie127.googlecode.com/files/PresentasiPBO.zip
selamat Belajar java beserta Database, serta memahami OOP pastinya.. 😀