iBATIS - Operasi Pembaruan
Kita telah membahas, di bab terakhir, bagaimana melakukan operasi READ di atas meja menggunakan iBATIS. Bab ini menjelaskan bagaimana Anda dapat memperbarui record dalam tabel menggunakan iBATIS.
Kami memiliki tabel EMPLOYEE berikut di MySQL -
CREATE TABLE EMPLOYEE (
id INT NOT NULL auto_increment,
first_name VARCHAR(20) default NULL,
last_name VARCHAR(20) default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);
Tabel ini hanya memiliki satu catatan sebagai berikut -
mysql> select * from EMPLOYEE;
+----+------------+-----------+--------+
| id | first_name | last_name | salary |
+----+------------+-----------+--------+
| 1 | Zara | Ali | 5000 |
+----+------------+-----------+--------+
1 row in set (0.00 sec)
Kelas POJO Karyawan
Untuk melakukan operasi udpate, Anda perlu mengubah file Employee.java sebagai berikut -
public class Employee {
private int id;
private String first_name;
private String last_name;
private int salary;
/* Define constructors for the Employee class. */
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.first_name = fname;
this.last_name = lname;
this.salary = salary;
}
/* Here are the required method definitions */
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return first_name;
}
public void setFirstName(String fname) {
this.first_name = fname;
}
public String getLastName() {
return last_name;
}
public void setlastName(String lname) {
this.last_name = lname;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
} /* End of Employee */
File Employee.xml
Untuk mendefinisikan pernyataan pemetaan SQL menggunakan iBATIS, kita akan menambahkan tag <update> pada Employee.xml dan di dalam definisi tag ini, kita akan mendefinisikan sebuah "id" yang akan digunakan dalam file IbatisUpdate.java untuk mengeksekusi query SQL UPDATE pada database.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Employee">
<insert id="insert" parameterClass="Employee">
INSERT INTO EMPLOYEE(first_name, last_name, salary)
values (#first_name#, #last_name#, #salary#)
<selectKey resultClass="int" keyProperty="id">
select last_insert_id() as id
</selectKey>
</insert>
<select id="getAll" resultClass="Employee">
SELECT * FROM EMPLOYEE
</select>
<update id="update" parameterClass="Employee">
UPDATE EMPLOYEE
SET first_name = #first_name#
WHERE id = #id#
</update>
</sqlMap>
File IbatisUpdate.java
File ini memiliki logika tingkat aplikasi untuk memperbarui catatan ke dalam tabel Karyawan -
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;
public class IbatisUpdate{
public static void main(String[] args)
throws IOException,SQLException{
Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);
/* This would update one record in Employee table. */
System.out.println("Going to update record.....");
Employee rec = new Employee();
rec.setId(1);
rec.setFirstName( "Roma");
smc.update("Employee.update", rec );
System.out.println("Record updated Successfully ");
System.out.println("Going to read records.....");
List <Employee> ems = (List<Employee>)
smc.queryForList("Employee.getAll", null);
Employee em = null;
for (Employee e : ems) {
System.out.print(" " + e.getId());
System.out.print(" " + e.getFirstName());
System.out.print(" " + e.getLastName());
System.out.print(" " + e.getSalary());
em = e;
System.out.println("");
}
System.out.println("Records Read Successfully ");
}
}
Kompilasi dan Jalankan
Berikut adalah langkah-langkah untuk mengkompilasi dan menjalankan perangkat lunak yang disebutkan di atas. Pastikan Anda telah mengatur PATH dan CLASSPATH dengan benar sebelum melanjutkan untuk kompilasi dan eksekusi.
- Buat Employee.xml seperti yang ditunjukkan di atas.
- Buat Employee.java seperti yang ditunjukkan di atas dan kompilasi.
- Buat IbatisUpdate.java seperti yang ditunjukkan di atas dan kompilasi.
- Jalankan biner IbatisUpdate untuk menjalankan program.
Anda akan mendapatkan hasil berikut, dan catatan akan diperbarui dalam tabel EMPLOYEE dan kemudian, catatan yang sama akan dibaca dari tabel EMPLOYEE.
Going to update record.....
Record updated Successfully
Going to read records.....
1 Roma Ali 5000
Records Read Successfully