05_jdbc-manipulasi database.doc

Post on 01-Jan-2016

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

java manipulasi

TRANSCRIPT

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 1

PRAKTIKUM

Manipulasi Database MySQL di JAVA

1. Tujuan

Mahasiswa dapat membuat aplikasi database sederhana

menggunakan koneksi JDBC.

Mahasiswa dapat melakukan manipulasi database MySQL dengan

Java

2. Praktikum

2.1. Membuat Class Utama Manipulasi Database

Buat kelas dengan nama Penerbit.java yang didalamnya berisi

mengenai attribut dan method dari penerbit.

public class Penerbit {

public int id;

public String nama;

public String kota;

public Penerbit() {

}

public Penerbit(String nama, String kota) {

this.nama = nama;

this.kota = kota;

}

public void setID(int ID ) {

this.id = ID;

}

public String getNama() {

return nama;

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 2

}

public String getKota() {

return kota;

}

public int getID() {

return id;

}

}

2.2. Membuat Class interface Manipulasi Database

Kemudian buat class interface untuk manipulasi table penerbit

dengan nama interfacePenerbit.java. Adapun isi dari file

interfacePenerbit.java adalah sebagai berikut:

import java.sql.SQLException;

import java.util.List;

public interface interfacePenerbit {

Penerbit insertPenerbit(Penerbit g)throws SQLException;

void updatePenerbit(Penerbit g)throws SQLException;

void deletePenerbit(String g)throws SQLException;

List<Penerbit>Daftar()throws SQLException;

}

2.3. Membuat Class Implementasi Manipulasi Database

Setelah itu buat implementasinya untuk penerbit dengan nama

implementasiPenerbit.java agar dapat diimplementasikan pada

objek.

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

public class implementasiPenerbit implements interfacePenerbit{

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 3

private static Connection connection;

public static Connection getConnection() {

if (connection == null) {

try {

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

connection =

DriverManager.getConnection("jdbc:mysql://localhost:3306/buku", "root",

"");

} catch (SQLException ex) {

Logger.getLogger(PubTableModel.class.getName()).log(Level.S

EVERE, null, ex);

}

}

return connection;

}

@Override

public Penerbit insertPenerbit(Penerbit g) throws SQLException {

PreparedStatement preparedStatement =

getConnection().prepareStatement("insert into penerbit (nama,kota)

values (?,?)");

preparedStatement.setString(1, g.getNama());

preparedStatement.setString(2, g.getKota());

preparedStatement.executeUpdate();

return g;

}

@Override

public void updatePenerbit(Penerbit g) throws SQLException {

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 4

PreparedStatement preparedStatement =

getConnection().prepareStatement("update penerbit set nama=?,

kota=? where id=?");

preparedStatement.setString(1, g.getNama());

preparedStatement.setString(2, g.getKota());

preparedStatement.setInt(3, g.getID());

preparedStatement.executeUpdate();

}

@Override

public void deletePenerbit(String g) throws SQLException {

PreparedStatement preparedStatement =

getConnection().prepareStatement("delete from penerbit where id=? ");

preparedStatement.setString(1, g);

preparedStatement.executeUpdate();

}

@Override

public List<Penerbit> Daftar() throws SQLException {

Statement statement = getConnection().createStatement();

ResultSet resultSet =statement.executeQuery("select * from

penerbit");

List<Penerbit>list = new ArrayList<Penerbit>();

while (resultSet.next()){

Penerbit g = new

Penerbit(resultSet.getString("nama"),resultSet.getString("kota"));

g.setID(resultSet.getInt("id"));

list.add(g);

}

return list;

}

}

2.4. Edit Class Instansiasi Objek

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 5

Buka file PubList.java yang sudah dibuat sebelumnya kemudian

tambahkan beberapa komponen seperti gambar di bawah lalu

tambahkan fungsi-fungsi untuk manipulasi database dengan

bagian yang dihitamkan (BOLD) yang perlu ditambah secara

manual, sisanya merupakan generated code.

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

public class PubList extends javax.swing.JFrame {

Connection con = null;

Statement stmt = null;

ResultSet rs;

boolean pembeda;

interfacePenerbit terbit;

List<Penerbit> listGambar = new ArrayList<Penerbit>();

int x;

/**

* Creates new form PubList

*/

public PubList() {

try{

//loading driver MySQL/J

Class.forName("com.mysql.jdbc.Driver");

}

catch(ClassNotFoundException e){

System.err.println("Error loading driver: " + e.getMessage());

}

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 6

try{

//membuat koneksi database

con =

DriverManager.getConnection("jdbc:mysql://localhost/buku", "root", "");

//statemen sql statik

stmt = con.createStatement();

}

catch(SQLException e){

System.err.println("Error SQL: " + e.getMessage());

}

initComponents();

terbit = new implementasiPenerbit();

readData();

showData();

listSelection();

setButton(true, false);

jLabel3.setVisible(false);

rs = getResultData();

jTable1.setModel(new PubTableModel(rs));

closeResultSet(rs);

}

private void setButton(boolean a, boolean b) {

btnTambah.setEnabled(a);

btnUpdate.setEnabled(a);

btnDelete.setEnabled(a);

btnSimpan.setEnabled(b);

btnBatal.setEnabled(b);

}

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 7

public ResultSet getResultData(){

ResultSet rs = null;

try{

//eksekusi SQL-statemen untuk tabel penerbit

rs = stmt.executeQuery("SELECT * FROM penerbit");

}

catch(SQLException e){

System.err.println("Error SQL: " + e.getMessage());

}

return rs;

}

public void closeResultSet(ResultSet rs){

if(rs != null){

try{

rs.close();

}

catch(SQLException e){

System.err.println("Error SQL: " + e.getMessage());

}

}

}

private void showData() {

Penerbit g = listGambar.get(x);

txtnama.setText(g.getNama());

txtkota.setText(g.getKota());

jLabel3.setText(Integer.toString(g.getID()));

}

private void readData() {

try {

listGambar = terbit.Daftar();

} catch (SQLException ex) {

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 8

Logger.getLogger(PubList.class.getName()).log(Level.SE

VERE, null, ex);

}

}

private void listSelection() {

jTable1.getSelectionModel().addListSelectionListener(new

ListSelectionListener() {

@Override

public void valueChanged(ListSelectionEvent e) {

x = jTable1.getSelectedRow();

if (x != -1) {

showData();

setButton(true, false);

}

}

});

}

/**

* This method is called from within the constructor to initialize the

form.

* WARNING: Do NOT modify this code. The content of this method is

always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();

jTable1 = new javax.swing.JTable();

txtnama = new javax.swing.JTextField();

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 9

txtkota = new javax.swing.JTextField();

btnTambah = new javax.swing.JButton();

btnSimpan = new javax.swing.JButton();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

btnUpdate = new javax.swing.JButton();

btnDelete = new javax.swing.JButton();

btnBatal = new javax.swing.JButton();

jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_C

LOSE);

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent evt) {

formWindowClosing(evt);

}

});

jTable1.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"Title 1", "Title 2", "Title 3", "Title 4"

}

));

jScrollPane1.setViewportView(jTable1);

txtnama.setEnabled(false);

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 10

txtkota.setEnabled(false);

btnTambah.setText("Tambah");

btnTambah.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnTambahActionPerformed(evt);

}

});

btnSimpan.setText("Simpan");

btnSimpan.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnSimpanActionPerformed(evt);

}

});

jLabel1.setText("Nama");

jLabel2.setText("Kota");

btnUpdate.setText("Update");

btnUpdate.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnUpdateActionPerformed(evt);

}

});

btnDelete.setText("Delete");

btnDelete.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 11

btnDeleteActionPerformed(evt);

}

});

btnBatal.setText("Batal");

btnBatal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnBatalActionPerformed(evt);

}

});

jLabel3.setText("id");

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L

EADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayou

t.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupL

ayout.Alignment.LEADING)

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 375,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createSequentialGroup()

.addComponent(btnUpdate)

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 12

.addPreferredGap(javax.swing.LayoutStyle.Compone

ntPlacement.UNRELATED)

.addComponent(btnDelete)

.addPreferredGap(javax.swing.LayoutStyle.Compone

ntPlacement.UNRELATED)

.addComponent(btnSimpan)

.addGap(18, 18, 18)

.addComponent(btnBatal)))

.addContainerGap())

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupL

ayout.Alignment.LEADING)

.addComponent(jLabel1)

.addComponent(jLabel2))

.addGap(19, 19, 19)

.addGroup(layout.createParallelGroup(javax.swing.GroupL

ayout.Alignment.LEADING)

.addComponent(txtnama)

.addComponent(txtkota))

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupL

ayout.Alignment.LEADING)

.addComponent(btnTambah)

.addComponent(jLabel3))

.addGap(29, 29, 29))))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L

EADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addGap(19, 19, 19)

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 13

.addGroup(layout.createParallelGroup(javax.swing.GroupLayou

t.Alignment.BASELINE)

.addComponent(txtnama,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnTambah)

.addComponent(jLabel1))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlaceme

nt.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayou

t.Alignment.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLay

out.Alignment.BASELINE)

.addComponent(txtkota,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2))

.addComponent(jLabel3,

javax.swing.GroupLayout.Alignment.TRAILING))

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayou

t.Alignment.BASELINE)

.addComponent(btnUpdate)

.addComponent(btnDelete)

.addComponent(btnBatal)

.addComponent(btnSimpan))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlaceme

nt.RELATED, 7, Short.MAX_VALUE)

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 14

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 275,

javax.swing.GroupLayout.PREFERRED_SIZE))

);

java.awt.Dimension screenSize =

java.awt.Toolkit.getDefaultToolkit().getScreenSize();

setBounds((screenSize.width-411)/2, (screenSize.height-434)/2,

411, 434);

}// </editor-fold>

private void

btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if (pembeda == true) {

if (txtnama.getText().isEmpty()) {

JOptionPane.showMessageDialog(this, "Nama jangan

lupa diisi");

txtnama.requestFocus();

} else {

try {

Penerbit p = new

Penerbit(txtnama.getText(),txtkota.getText());

terbit.insertPenerbit(p);

setButton(true, false);

txtnama.setEnabled(false);

txtkota.setEnabled(false);

rs = getResultData();

jTable1.setModel(new PubTableModel(rs));

} catch (SQLException ex) {

Logger.getLogger(PubList.class.getName()).log(Leve

l.SEVERE, null, ex);

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 15

}

}

} else {

try {

Penerbit g = listGambar.get(x);

Penerbit p = new

Penerbit(txtnama.getText(),txtkota.getText());

p.setID(g.getID());

terbit.updatePenerbit(p);

setButton(true, false);

txtnama.setEnabled(false);

txtkota.setEnabled(false);

rs = getResultData();

jTable1.setModel(new PubTableModel(rs));

} catch (SQLException ex) {

Logger.getLogger(PubList.class.getName()).log(Level.

SEVERE, null, ex);

}

}

}

private void

btnTambahActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

setButton(false, true);

txtnama.setText("");

txtkota.setText("");

txtnama.setEnabled(true);

txtkota.setEnabled(true);

txtnama.requestFocus();

pembeda = true;

}

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 16

private void

btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

setButton(false, true);

pembeda = false;

txtnama.setEnabled(true);

txtkota.setEnabled(true);

}

private void

btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

Penerbit g = listGambar.get(x);

String s = jLabel3.getText();

int ss = JOptionPane.showConfirmDialog(null, "Apakah anda

yakin ingin menghapus" + " " + s, "Konfirmasi",

JOptionPane.YES_NO_OPTION);

if (ss == JOptionPane.YES_OPTION) {

try {

terbit.deletePenerbit(s);

rs = getResultData();

jTable1.setModel(new PubTableModel(rs));

} catch (SQLException ex) {

Logger.getLogger(PubList.class.getName()).log(Level.

SEVERE, null, ex);

}

}

}

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 17

private void

btnBatalActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

setButton(true, false);

txtnama.setEnabled(false);

showData();

}

private void formWindowClosing(java.awt.event.WindowEvent evt) {

// TODO add your handling code here:

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/*

* Set the Nimbus look and feel

*/

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting

code (optional) ">

/*

* If Nimbus (introduced in Java SE 6) is not available, stay with the

* default look and feel. For details see

*

http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :

javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 18

javax.swing.UIManager.setLookAndFeel(info.getClassName()

);

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(PubList.class.getName()).log(j

ava.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(PubList.class.getName()).log(j

ava.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(PubList.class.getName()).log(j

ava.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(PubList.class.getName()).log(j

ava.util.logging.Level.SEVERE, null, ex);

}

//</editor-fold>

/*

* Create and display the form

*/

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new PubList().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton btnBatal;

PEMROGRAMAN BERORIENTASI OBJEK

JDBC XI - 19

private javax.swing.JButton btnDelete;

private javax.swing.JButton btnSimpan;

private javax.swing.JButton btnTambah;

private javax.swing.JButton btnUpdate;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTable jTable1;

private javax.swing.JTextField txtkota;

private javax.swing.JTextField txtnama;

// End of variables declaration

}

}

top related