Sunday, January 1, 2012

Auto Number dengan java persistence dan MYsql

Tags

Assalamualkaum Wr. Wb..
Sahabat blogger semua pernah tidak kamu ketika mengunakan sebuah program, code (id) otomatis generate seperti ada paternnya contoh HR001001. Bagaimana caranya jika kita membuat auto number dengan mengunakan java dan persistance.

1. Persiapan yang Dibutuhkan

Pertama kamu harus sudah menginstall Netbeans dan selanjutnya buatlah database terlebih dahulu denga cara :
create database autonumber;

2. Pembuatan Code Program

Selanjutnya buatlah sebuah projek baru java aplication da beri judul bebas:
disini saya memberi nama nya AutoNumber.
kemudian buatlah sebuah entity class dengan cara klik FIle--> new File --> pilih persistence dan pilih entity class masukan database yang tadi kitabuat dan beri nama classnya Mahasiswa:

package asep.autonumber;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 *
 * @author asep
 */
@Entity
public class Mahasiswa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="Nim",length=10,nullable=false,unique=true)
    private String nim;

    @Column(name="nama",length=20,nullable=false)
    private String nama;
  
    @Column(name="alamat",length=50,nullable=false)
    private String alamat;

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mahasiswa other = (Mahasiswa) obj;
        if ((this.nim == null) ? (other.nim != null) : !this.nim.equals(other.nim)) {
            return false;
        }
        if ((this.nama == null) ? (other.nama != null) : !this.nama.equals(other.nama)) {
            return false;
        }
        if ((this.alamat == null) ? (other.alamat != null) : !this.alamat.equals(other.alamat)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 59 * hash + (this.nim != null ? this.nim.hashCode() : 0);
        hash = 59 * hash + (this.nama != null ? this.nama.hashCode() : 0);
        hash = 59 * hash + (this.alamat != null ? this.alamat.hashCode() : 0);
        return hash;
    }    
}
Lalu buat persistenceHelper:
package asep.autonumber;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author asep
 */
public class PersistanceHelper {
    private static final EntityManagerFactory FACTORY;
  
    static{
        FACTORY=Persistence.createEntityManagerFactory("AutoNumberPU");
    }

    public static EntityManagerFactory getFACTORY() {
        return FACTORY;
    }  
}

buat tampilan view sbb:
tambahkan geter untuk txtUserId
 public JTextField getTxtId() {
        return txtId;
    }
kemudin buat controlernya:
package asep.autonumber;

import javax.persistence.EntityManager;
import javax.persistence.Query;

/**
 *
 * @author asep
 */
public class Controler {  
    private View view;

    public Controler(View view) {
        this.view = view;
    }
  
    public void select(){
        EntityManager manager=PersistanceHelper.getFACTORY().createEntityManager();
        manager.getTransaction().begin();
        try{
            @SuppressWarnings("unchecked")
            Query id= manager.createQuery("select max(a.nim) from Mahasiswa a");
            Object coun= id.getSingleResult();
            if(coun==null){
                view.getTxtId().setText("0001");
            }else{
                int nilai=Integer.parseInt(coun.toString());
                nilai=nilai+1;
                view.getTxtId().setText("000"+String.valueOf(nilai));
            }
          
            manager.getTransaction().commit();
          
        }finally{
            manager.close();
        }
    }
  
}
lalu tambahkan pula pada action btnAdd koding ini:
private void btnIdActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    controler=new Controler(this);
        controler.select();
}  

3. Testing dan Jalankan Program

sekarang kita coba jalankan programnya, tekan tombol add maka number akan otomatis di create:
downloas sourcecode lengkapnya disini:
autonumber


EmoticonEmoticon