Jumat, 29 April 2016

CRUD Hibernate Java Bagian 4

DELETE(DELETE SQL)
Untuk yang terakhir Delete, tambahkan coding berikut ke dalam file Main.class
1
2
3
4
5
6
7
8
9
10
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;
 Jalankan file Main.class, input 4 dan lihat outputnya. Dan jangan lupa cek di tabel database apakah record berhasil dihapus.

 

Dan berikut ialah source code lengkap dari tiap file - file yang ada di tutorial ini.
Users.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package org.jaco.hibernate;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table(name = "users")
public class Users
{
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    int id;
    @Column(name = "nama")
    String nama;
     
    //  Getter dan Setter
    public void setID(int id)
    {
        this.id = id;
    }
     
    public int getID()
    {
        return id;
    }
     
    public void setNama(String nama)
    {
        this.nama = nama;
    }
     
    public String getNama()
    {
        return nama;
    }
     
    @Override
    public String toString()
    {
        return "ID : "+id+" Nama : "+nama;
    }
     
}

hibernate.cfg.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">nasigoreng</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/perpustakaan</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <mapping class="org.jaco.hibernate.Users" />       
    </session-factory>
</hibernate-configuration>

Users.hbm.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<!-- Generated Oct 17, 2015 6:42:35 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="org.jaco.hibernate.Users" table="USERS">
        <id name="id" type="int" access="field">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <property name="nama" type="java.lang.String">
            <column name="NAMA" />
        </property>
    </class>
</hibernate-mapping>

Main.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package org.jaco.hibernate;
 
import java.util.List;
import java.util.Scanner;
 
import org.hibernate.Query;
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;
                             
            case 2  :   //  Read(Select SQL)
                        s.beginTransaction();
                        for(Users us :getAllUsers())
                        {
                            System.out.println(us);
                        }
                         
                            break;
                             
            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;
                             
            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;
                         
                             
            default :   System.out.println("Pilihan tidak tersedia");
                             
        }
    }
     
    //  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;
        }
    }
 
}

Dan berikut ialah struktur direktori dari tutorial berikut.

Sekian untuk tutorial ini

Tidak ada komentar:

Posting Komentar