iBATIS - Operation erstellen

Um eine CRUD-Operation (Create, Read, Update and Delete) mit iBATIS auszuführen, müssen Sie eine POJO-Klasse (Plain Old Java Objects) erstellen, die der Tabelle entspricht. Diese Klasse beschreibt die Objekte, die Datenbanktabellenzeilen "modellieren".

Die POJO-Klasse verfügt über eine Implementierung für alle Methoden, die zum Ausführen der gewünschten Operationen erforderlich sind.

Nehmen wir an, 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)
);

Mitarbeiter POJO Klasse

Wir würden eine Employee-Klasse in der Employee.java-Datei wie folgt erstellen:

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;
   }
} /* End of Employee */

Sie können Methoden definieren, um einzelne Felder in der Tabelle festzulegen. Im nächsten Kapitel wird erläutert, wie Sie die Werte einzelner Felder ermitteln.

Employee.xml-Datei

Um die SQL-Zuordnungsanweisung mit iBATIS zu definieren, verwenden wir das Tag <Einfügung> und innerhalb dieser Tag-Definition definieren wir eine "ID", die in der Datei IbatisInsert.java zum Ausführen der SQL INSERT-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> 

</sqlMap>

Hier parameterClass −könnte nehmen einen Wert als String, int, float, double , oder jede Klasse Objekt basiert auf Anforderung. In diesem Beispiel würden wir das Employee-Objekt als Parameter übergeben, während wir die insert- Methode der SqlMap-Klasse aufrufen.

Wenn Ihre Datenbanktabelle eine IDENTITY-, AUTO_INCREMENT- oder SERIAL-Spalte verwendet oder Sie eine SEQUENCE / GENERATOR definiert haben, können Sie das <selectKey> -Element in einer <Einfügung> -Anweisung verwenden, um diesen von der Datenbank generierten Wert zu verwenden oder zurückzugeben.

IbatisInsert.java-Datei

Diese Datei verfügt über eine Logik auf Anwendungsebene zum Einfügen von Datensätzen in die 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 IbatisInsert{
   public static void main(String[] args)throws IOException,SQLException{
      Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");
      SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

      /* This would insert one record in Employee table. */
      System.out.println("Going to insert record.....");
      Employee em = new Employee("Zara", "Ali", 5000);

      smc.insert("Employee.insert", em);

      System.out.println("Record Inserted 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 IbatisInsert.java wie oben gezeigt und kompilieren Sie es.
  • Führen Sie die Binärdatei IbatisInsert aus, um das Programm auszuführen.

Sie würden das folgende Ergebnis erhalten und ein Datensatz in der Tabelle EMPLOYEE erstellt.

$java IbatisInsert
Going to insert record.....
Record Inserted Successfully

Wenn Sie die Tabelle EMPLOYEE überprüfen, sollte das folgende Ergebnis angezeigt werden:

mysql> select * from EMPLOYEE;
+----+------------+-----------+--------+
| id | first_name | last_name | salary |
+----+------------+-----------+--------+
|  1 | Zara       | Ali       |   5000 |
+----+------------+-----------+--------+
1 row in set (0.00 sec)