iBATIS - Operasi Baca

Kita telah membahas, pada bab terakhir, bagaimana melakukan operasi CREATE pada tabel menggunakan iBATIS. Bab ini menjelaskan cara membaca 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 baca, kami akan memodifikasi kelas Karyawan di 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 method definitions */
   public int getId() {
      return id;
   }
	
   public String getFirstName() {
      return first_name;
   }
	
   public String getLastName() {
      return last_name;
   }
	
   public int getSalary() {
      return salary;
   }
	
} /* End of Employee */

File Employee.xml

Untuk mendefinisikan pernyataan pemetaan SQL menggunakan iBATIS, kita akan menambahkan tag <select> pada file Employee.xml dan di dalam definisi tag ini, kita akan mendefinisikan sebuah "id" yang akan digunakan dalam file IbatisRead.java untuk mengeksekusi query SQL SELECT 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>
	
</sqlMap>

Di sini kami tidak menggunakan klausa WHERE dengan pernyataan SQL SELECT. Kami akan mendemonstrasikan, di bab berikutnya, bagaimana Anda bisa menggunakan klausa WHERE dengan pernyataan SELECT dan bagaimana Anda bisa meneruskan nilai ke klausa WHERE itu.

Berkas IbatisRead.java

File ini memiliki logika tingkat aplikasi untuk membaca catatan dari 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 IbatisRead{
   public static void main(String[] args)throws IOException,SQLException{
      Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");
      SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

      /* This would read all records from the Employee table. */
      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 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 IbatisRead.java seperti yang ditunjukkan di atas dan kompilasi.
  • Jalankan biner IbatisRead untuk menjalankan program.

Anda akan mendapatkan hasil berikut, dan record akan dibaca dari tabel EMPLOYEE sebagai berikut -

Going to read records.....
   1  Zara  Ali  5000
Record Reads Successfully