Sabtu, 20 April 2019

DATABASE CURD JAVA

CRUD adalah akronim untuk Create, Read, Update, dan Delete. Operasi CRUD adalah manipulasi data dasar untuk database.
 Dalam pemrograman komputer , membuat, membaca, memperbarui, dan menghapus [1] ( CRUD ) adalah empat fungsi dasar penyimpanan persisten . [2] Kata-kata alternatif kadang-kadang digunakan saat mendefinisikan empat fungsi dasar CRUD , seperti mengambil alih-alih membaca , mengubah alih-alih memperbarui , atau menghancurkan alih-alih menghapus . CRUD juga terkadang digunakan untuk menggambarkan konvensi antarmuka pengguna yang memfasilitasi tampilan, pencarian, dan perubahan informasi ; sering menggunakan formulir dan laporan berbasis komputer. Istilah ini kemungkinan pertama kali dipopulerkan oleh James Martin dalam bukunya 1983 Mengelola Lingkungan Data-base . [1] [3] Akronim ini dapat diperluas ke CRUDL untuk mencakup daftar set data besar yang membawa kompleksitas tambahan seperti pagination ketika set data terlalu besar untuk dengan mudah disimpan dalam memori.

CRUD (Create, Read, Update Delete) adalah fitur dasar yang harus kita buat saat bekerja dengan database.
Berikut ini daftar pekerjaannya…
TODO:

Ada lima method dalam class tersebut:

1. Method __construct()

Method __construct() merupakan sebuah konstruktor. Method ini yang akan dieksekusi pertama kali saat Controller diakses.
Pada method ini, kita melakukan load model (porduct_model) dan library (form_validation).

2. Method index()

Pada method ini, kita akan mengambil data dari model dengan memanggil method product_model->getAll().

3. Method add()

Method ini bertugas untuk menampilkan form add dan menyimpan data ke database. Tentunya dengan memanggil method save() yang ada pada model.
Namun, sebelum memanggil method save(), kita lakukan validasi terlebih dahulu dengan mengeksekusi method run() pada objek $validation.

4. Method edit()

Hampir sama dengan method add(), method edit() juga bertugas untuk menampilkan form dan menyimpan data.

5. Method delete()

Method delete() befungsi untuk menangni penghapusan data.
Prinsipnya hampir sama seperti method edit(), method delete() juga membutuhkan $id untuk menentukan data mana yang akan dihapus.


Tahap pertama adalah membuat project baru :

1. Buka projek baru dengan cara klik file =>  New Project
2. Pilih katagori: java dan project: java application.
3. Berikan nama project: sesuai dengan kebutuhan dan jangan lupa jangan lupa centang create main project lalu finish.
CREATE(INSERT)
 Untuk Create, masukkan coding berikut ke dalam class Main

package org.jaco.hibernate;
import java.util.Scanner;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class Main {
    public static void main(String[] args) {
        //  Buat Session untuk Koneksi Database
        Session s = new Configuration().configure().buildSessionFactory().openSession();
         
        //  Buat Objek dari class Users
        Users user = new Users();
         
        //  Pilih jenis operasi CRUD
        System.out.println("Pilih Operasi 1CRUD");
        System.out.println("1. Create");
        System.out.println("2. Read");
        System.out.println("3. Update");
        System.out.println("4. Delete");
        System.out.print("Pilihan : ");     int pilih = new Scanner(System.in).nextInt();
         
        switch(pilih)
        {
            case 1  :   //  Create(Insert SQL)
                        //  set nilai untuk objek user
                        //  user.setID(null)    nggak perlu dibuat karena, Auto_Increment
                        user.setNama("Yudi");
                         
                        try
                        {
                            //  Mulai Koneksi
                            s.beginTransaction();
                             
                            //  Simpan Objek User ke Session
                            s.save(user);
                             
                            //  execute Session ke MySQL
                            s.getTransaction().commit();
                             
                        }catch(Exception e)
                        {
                            e.printStackTrace();
                        }
                         
                            break;
                             
            default :   System.out.println("Pilihan tidak tersedia");
                             
        }
    }
}

Contoh  Kasus:

package pemilu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
 
public class Create extends javax.swing.JFrame {

    /** Creates new form Create */
    public Create() {
        initComponents();
    }

    @SuppressWarnings("unchecked") 
  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String capres = String.valueOf(jTextField1.getText());
        String cawapres = String.valueOf(jTextField2.getText());
        String slogan = String.valueOf(jTextArea1.getText());
        if (capres.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Nama Capres!", "Input Data Status", 1);
        } else if (cawapres.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Nama CaWapres!", "Input Data Status", 1);
        } else if (slogan.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Slogan!", "Input Data Status", 1);
        } else { // jika data tidak ada yang kosong.
            try {
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pemilu", "root", "");
                Statement st = conn.createStatement();
                String query = "INSERT INTO daftar_peserta VALUES (null,'" + capres + "','" + cawapres + "','" + slogan + "')";
                // harus diberi null, karena di database nya , kolom id itu AUTO INCREEMENT. null berarti tidak ada data yang masuk ke tabel
                st.executeUpdate(query);
                JOptionPane.showMessageDialog(null, "Data Berhasil Tersimpan!", "Input Data Status", 1);
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, "Terjadi Kesalahan! Periksa Kembali Data Anda! "+ex, "Input Data Status", 0);
            }
        }
    }
 
 
 

READ(SELECT)
Untuk Read, tambahkan coding berikut ke dalam file Main.class.

case 2  :   //  Read(Select SQL)
        s.beginTransaction();
        for(Users us :getAllUsers())
        {
            System.out.println(us);
        }
     
            break;
//  Method untuk select all from table
    public static List<Users> getAllUsers()
    {
        List<Users> list = null;
        Session session = new Configuration().configure().buildSessionFactory().openSession();
         
        try
        {
            session.beginTransaction();
            Query query = session.createQuery("from org.jaco.hibernate.Users");
            list = query.list();
            return list;
        }catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

Contoh Kasus :
package pemilu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class Read extends javax.swing.JFrame {

    /** Creates new form Read */
    public Read() {
        initComponents();
        data(); // ini berfungsi untuk memanggil method yang memanggil data pada database
    }


    @SuppressWarnings("unchecked")
                        
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "CaPres", "CaWapres", "Slogan"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(14, Short.MAX_VALUE))
        );

        pack();
    }                   

    public void data() {         try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pemilu", "root", "");
            String query2 = "SELECT * FROM daftar_peserta";
            Statement st2 = conn.createStatement();
            ResultSet rs2 = st2.executeQuery(query2);
            DefaultTableModel tm = (DefaultTableModel) jTable1.getModel();
            tm.setRowCount(0);
            while (rs2.next()) {
                String capress = rs2.getString("capres");
                String cawapress = rs2.getString("cawapres");
                String slogann = rs2.getString("slogan");
                tm.addRow(new Object[]{capress, cawapress, slogann});
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Terjadi Kesalahan! Periksa Kembali Data Anda!", "Input Data Status", 0);
        }
    }

                    
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
                     
}
 
 
 
 
 






UPDATE
Untuk update, tambahkan coding berikut ke dalam file Main.class.

case 3  :   //  Update(Update SQL)
        s.beginTransaction();
                         
        //  Set Query SQL
        Query query = s.createQuery("update org.jaco.hibernate.Users set nama = :nama where id = :id");
        query.setParameter("nama", "Setiawan");
        query.setParameter("id", 1);
        int exec = query.executeUpdate();
        s.getTransaction().commit();
                         
            break;
DELETE(DELETE SQL)
Untuk yang terakhir Delete, tambahkan coding berikut ke dalam file Main.class

case 4  :   //  Delete(Delete SQL)
        s.beginTransaction();
                         
        //  Set Query SQL
        query = s.createQuery("delete from org.jaco.hibernate.Users where id = :id");
        query.setParameter("id", 1);
        exec = query.executeUpdate();
        s.getTransaction().commit();
                         
            break;



Tidak ada komentar:

Posting Komentar

iriport

iReport adalah utilitas (perkakas) pelaporan, yang dikembangkan di lingkungan Java guna membantu user dan developer (pengembang/programm...