iBATIS - Lesevorgang
Im letzten Kapitel haben wir erläutert, wie Sie mit iBATIS eine CREATE-Operation für eine Tabelle ausführen. In diesem Kapitel wird erläutert, wie Sie eine Tabelle mit iBATIS lesen.
Wir haben die folgende EMPLOYEE-Tabelle in 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)
);
Diese Tabelle enthält nur einen Datensatz wie folgt:
mysql> select * from EMPLOYEE;
+----+------------+-----------+--------+
| id | first_name | last_name | salary |
+----+------------+-----------+--------+
| 1 | Zara | Ali | 5000 |
+----+------------+-----------+--------+
1 row in set (0.00 sec)
Mitarbeiter POJO Klasse
Um eine Leseoperation auszuführen, ändern wir die Employee-Klasse in Employee.java wie folgt:
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 */
Employee.xml-Datei
Um die SQL-Zuordnungsanweisung mit iBATIS zu definieren, fügen wir der Datei Employee.xml das Tag <select> hinzu und definieren innerhalb dieser Tag-Definition eine "id", die in der Datei IbatisRead.java zum Ausführen der SQL SELECT-Abfrage in der Datenbank verwendet wird.
<?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>
Hier haben wir die WHERE-Klausel mit der SQL SELECT-Anweisung nicht verwendet. Wir werden im nächsten Kapitel zeigen, wie Sie die WHERE-Klausel mit der SELECT-Anweisung verwenden und wie Sie Werte an diese WHERE-Klausel übergeben können.
IbatisRead.java-Datei
Diese Datei verfügt über eine Logik auf Anwendungsebene zum Lesen von Datensätzen aus der Employee-Tabelle.
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 ");
}
}
Kompilieren und Ausführen
Hier sind die Schritte zum Kompilieren und Ausführen der oben genannten Software. Stellen Sie sicher, dass Sie PATH und CLASSPATH richtig eingestellt haben, bevor Sie mit der Kompilierung und Ausführung fortfahren.
- Erstellen Sie Employee.xml wie oben gezeigt.
- Erstellen Sie Employee.java wie oben gezeigt und kompilieren Sie es.
- Erstellen Sie IbatisRead.java wie oben gezeigt und kompilieren Sie es.
- Führen Sie die IbatisRead-Binärdatei aus, um das Programm auszuführen.
Sie würden das folgende Ergebnis erhalten und ein Datensatz würde wie folgt aus der EMPLOYEE-Tabelle gelesen:
Going to read records.....
1 Zara Ali 5000
Record Reads Successfully