UAS Pemograman Berorientasi Objek: 1. Relasi ERD One To Many Undirectional

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

UAS Pemograman Berorientasi Objek

Nama : Muhammad Jawad Azzaki Syamlan

NIM : 41817120043

_____________________________________________________________________________________

1. Relasi ERD One to Many Undirectional

Class Mahasiswa

@Entity
@Table(name = "mahasiswa")
public class Mahasiswa implements Serializable {
@Id
private String nim;
private String nama;
private float ipk;
private String jurusan;
@OneToMany(mappedBy = "mahasiswa", cascade = CascadeType.ALL, orphanRemoval
= true)
private List<MataKuliah> mataKuliahs = new ArrayList<MataKuliah>();
public Mahasiswa() {
}
public Mahasiswa(String nim, String nama, float ipk, String jurusan) {
this.nim = nim;
this.nama = nama;
this.ipk = ipk;
this.jurusan = jurusan;
}

Class Tugas

@Entity
@Table(name = "tugas")
public class Tugas implements Serializable {
@Id
@GeneratedValue
private int id;
private String nama;
@Temporal(javax.persistence.TemporalType.DATE)
private Date tanggal_submitted;
@OneToMany(mappedBy = "Tugas", cascade = CascadeType.ALL, orphanRemoval =
true)
private List<Mahasiswa> mahasiswas = new ArrayList<>();
public Tugas() {
}
public Tugas(String nama, Date tanggal_submitted) {
this.nama = nama;
this.tanggal_submitted = tanggal_submitted;
}

2. Relasi ERD Many to Many Undirectional

Class Mahasiswa
@Entity
@Table(name = "mahasiswa")
public class Mahasiswa implements Serializable {
@Id
private String nim;
private String nama;
private float ipk;
private String jurusan;
@ManyToMany(cascade = CascadeType.ALL)
private List<Tugas> tugases = new ArrayList<>();
public Mahasiswa() {
}
public Mahasiswa(String nim, String nama, float ipk, String jurusan) {
this.nim = nim;
this.nama = nama;
this.ipk = ipk;
this.jurusan = jurusan;
}
Class Tugas
@Entity
@Table(name = "tugas")
public class Tugas implements Serializable {
@Id
@GeneratedValue
private int id;
private String nama;
@Temporal(javax.persistence.TemporalType.DATE)
private Date tanggal_submitted;
@ManyToMany(mappedBy = "tugases")
private List<Mahasiswa> mahasiswas = new ArrayList<>();
public Tugas() {
}
public Tugas(String nama, Date tanggal_submitted) {
this.nama = nama;
this.tanggal_submitted = tanggal_submitted;
}

3. Framework Hibernate Java Annotation CRUD (Create, Read, Update, Delete)

Users.class

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

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<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

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 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

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
user.setNama("user");
try
{
s.beginTransaction();
s.save(user);
s.getTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
}
break;
case 2 : // Read
s.beginTransaction();
for(Users us
:getAllUsers())
{
System.out.println(us);
}
break;
case 3 : // Update
s.beginTransaction();
Query query = s.createQuery("update org.jaco.hibernate.Users set nama =
:nama where id =
:id");
query.setParameter("nama",
"Users");
query.setParameter("id",1);
int exec =
query.executeUpdate();
s.getTransaction().commit();
break;
case 4 : // Delete
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");
}
}
// 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;
}
}
}

You might also like