JAXB (Java Architecture XML Binding)

JAXB merupakan salah satu library di Java yang digunakan untuk mengkonversi Object ke XML dan sebaliknya.

Berikut contoh pemakaiannya :

1. Menulis ke File

a. Buat kelas dengan nama misalnya Employee dengan isi sebagai berikut :

package testingjaxb;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Employee {

 private int id;
 private String name;
 private int age;

 public Employee() {
 }

 public int getAge() {
     return age;
 }

 @XmlElement
 public void setAge(int age) {
     this.age = age;
 }

 public int getId() {
     return id;
 }

 @XmlAttribute
 public void setId(int id) {
     this.id = id;
 }

 public String getName() {
     return name;
 }

 @XmlElement
 public void setName(String name) {
     this.name = name;
 }
}

b. Buat kelas ang lain untuk proses menulis ke data menggunakan object dari kelas Employee ke file xml.

</pre>
package testingjaxb;

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class WriteData {

public static void main(String[] args) {
 Employee empl = new Employee();
 empl.setId(123);
 empl.setName("Vyor Oppier");
 empl.setAge(29);

 try {

 File file = new File("D:\\empl.xml");
 JAXBContext jaxbContext = JAXBContext.newInstance(Employee.class);
 Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

 jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

 jaxbMarshaller.marshal(empl, file);
 jaxbMarshaller.marshal(empl, System.out);

 } catch (JAXBException e) {
    e.getStackTrace();
 }
 }
}

Ketika baris perintah diatas dijalankan maka Java akan membentuk file xml dengan data Employee yang kita set sebelumnya.

2.  Membaca file.

Untuk membaca file xml caranya adalah sebagai berikut : (File yang dibaca adalah file yang ditulis sebelumnya dengan menggunakan langkah 1).

package testingjaxb;

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

public class ReadData {

public static void main(String[] args) {
 try {

 File file = new File("D:\\empl.xml");
 JAXBContext jaxbContext = JAXBContext.newInstance(Employee.class);

 Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
 Employee empl= (Employee) jaxbUnmarshaller.unmarshal(file);
 System.out.println(empl.getName());

 } catch (JAXBException e) {
    e.getStackTrace();
 }
 }
}

Happy Coding. 🙂

Advertisements

4 Responses to JAXB (Java Architecture XML Binding)

  1. amir says:

    Kak librari yg sudh ada dijava itu tujuannya untuk apa? Khususnya untuk web service, contoh aplikasinya seperti apa? Mohon pencerahannya tank

    • Vyor Oppier says:

      Library itu adalah kumpulan pustaka-pustaka (kelas dan fungsi). Tujuan penggunaan library ini sebenarnya untuk membantu developer untuk mengembangkan/membuat program. Bayangkan saja kalo library tidak ada berarti developer dituntut untuk membuat sendiri padahal sebenarnya sudah disediakan oleh Java. Contoh analoginya : Ketika pabrik mobil mau membuat mobil yang dipikirkan adalah bagaimana caranya merakit. Fase mendesain ban dan mendeskripsikan ban (bentuk nya bulat ada diameter dst) sudah tidak dipikirkan. Nah kalo pabrik tersebut masih mau untuk mendeskripsikan ban tadi berarti fase pembuatan mobil dan perakitan jadi lebih lama. padahal teknologi ban, sudah ditemukan sejak lama dan sudah dibuatkan konsep oleh orang lain. Kenapa pabrik harus berusaha untuk mendeskripsikan ulang ??? Untuk web service sendiri juga sudah ada library yang disediakan java contoh JAX-WS, dll. Web service itu menjembatani 2 sistem yang berbeda untuk saling bertukar data.

  2. System.out.println(customer.getName());
    customernya mana??

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: