MyBatisがどれだけ知っているか(19)MyBatis操作

14844 ワード

iBATISで実行されるCRUD(作成、書き込み、更新、削除)操作を使用するには、POJOクラスに対応するテーブルを作成する必要があります.このコースで説明するオブジェクトは、「モード」のデータベース・テーブルの行を示します.
POJOクラスは、必要な操作を実行するために必要なすべての方法を実現しなければならない.
MySQLの下にEMPLOYEテーブルがあります.
1 CREATE TABLE EMPLOYEE (

2    id INT NOT NULL auto_increment,

3    first_name VARCHAR(20) default NULL,

4    last_name  VARCHAR(20) default NULL,

5    salary     INT  default NULL,

6    PRIMARY KEY (id)

7 );

 
Employee POJOクラス:
私たちはEmployeeにいます.JAvaファイルには次のようにEmployeeクラスが作成されます.
 1 public class Employee {

 2   private int id;

 3   private String first_name; 

 4   private String last_name;   

 5   private int salary;  

 6 

 7   /* Define constructors for the Employee class. */

 8   public Employee() {}

 9   

10   public Employee(String fname, String lname, int salary) {

11     this.first_name = fname;

12     this.last_name = lname;

13     this.salary = salary;

14   }

15 } /* End of Employee */

 
テーブル内の各フィールドを設定する方法を定義できます.次の章では、各フィールドの値を取得する方法について説明します.
Employee.xmlファイル:
iBATIS SQLマッピング文の使用を定義するには、ラベルを使用します.このラベル定義では、IbatisInsertで使用することを定義します.JAvaファイルのデータベースはSQL INSERTクエリー「id」を実行します.
 1 <?xml version="1.0" encoding="UTF-8"?>

 2 <!DOCTYPE sqlMap 

 3 PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

 4 "http://ibatis.apache.org/dtd/sql-map-2.dtd">

 5 

 6 <sqlMap namespace="Employee"> 

 7 <insert id="insert" parameterClass="Employee">

 8           

 9    insert into EMPLOYEE(first_name, last_name, salary)

10    values (#first_name#, #last_name#, #salary#)

11 

12    <selectKey resultClass="int" keyProperty="id">

13       select last_insert_id() as id

14    </selectKey>

15 

16 </insert> 

17 

18 </sqlMap>

 
ここでparameterClass:文字列、整数、浮動小数点、double、または必要に応じて任意のクラスのオブジェクトとして値をとることができます.この例では,EmployeeオブジェクトをパラメータとしてSqlMapクラスのinsertメソッドを呼び出す.
データベーステーブルでIDENTITY、AUTO_を使用している場合INCREMENTまたはシリアル列または定義済みSEQUENCE/GENERATORは、要素を使用して、文でデータベースで生成された値を使用または戻すことができます.
IbatisInsert.JAvaファイル:
ファイルは、アプリケーション・レベルの論理をEmployeeテーブルにレコードを挿入します.
 1 import com.ibatis.common.resources.Resources;

 2 import com.ibatis.sqlmap.client.SqlMapClient;

 3 import com.ibatis.sqlmap.client.SqlMapClientBuilder;

 4 import java.io.*;

 5 import java.sql.SQLException;

 6 import java.util.*;

 7 

 8 public class IbatisInsert{

 9   public static void main(String[] args)

10    throws IOException,SQLException{

11    Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");

12    SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

13 

14    /* This would insert one record in Employee table. */

15    System.out.println("Going to insert record.....");

16    Employee em = new Employee("Zara", "Ali", 5000);

17 

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

19 

20    System.out.println("Record Inserted Successfully ");

21 

22   }

23 }

 
コンパイルと実行:
次に、上記のソフトウェアをコンパイルして実行する手順を示します.コンパイルと実行の前に、PATHとCLASSSPATHが適切に設定されていることを確認してください.
  • Employeeを作成する.xmlは上記の通りです.
  • Employeeを作成する.JAvaは上図のようにコンパイルされています.
  • IbatisInsertを作成する.JAvaは上図のようにコンパイルされています.
  • IbatisInsertバイナリファイルを実行してプログラムを実行します.

  • 以下の結果が得られ、記録的なものはEMPLOYEテーブルに作成されます.
     
    1 $java IbatisInsert
    
    2 Going to insert record.....
    
    3 Record Inserted Successfully

     
    EMPLOYEテーブルを表示すると、次のような結果が得られます.
    mysql> select * from EMPLOYEE;
    
    +----+------------+-----------+--------+
    
    | id | first_name | last_name | salary |
    
    +----+------------+-----------+--------+
    
    |  1 | Zara       | Ali       |   5000 |
    
    +----+------------+-----------+--------+
    
    1 row in set (0.00 sec)

    シリーズ記事:
    MyBatisはどのくらい知っていますか(1)
    MyBatisはどのくらい知っていますか(2)
    MyBatisはどのくらい知っていますか(3)
    MyBatisがどれだけ知っているか(4)MyBatisの強み
    MyBatisが知っている(5)ビジネス・オブジェクト・モデル
    MyBatisはどのくらい(6)表現層とビジネスロジック層を知っていますか
    MyBatisはどのくらい(7)持続層を知っていますか
    MyBatisが知っている(8)リレーショナル・データベース
    MyBatisが知っている(9)異なるタイプのデータベース
    MyBatisが知っている(10)アプリケーション・データベース
    MyBatisが知っている(11)エンタープライズ・データベース
    MyBatisが知っている(12)プライベート・データベース
    MyBatisはどのくらい知っていますか(13)MyBatisはデータベースのよくある問題をどのように解決します
    MyBatisはどのくらい(14)分散したデータベースシステムを知っていますか
    MyBatisはどのくらい(15)データモデルを知っていますか
    MyBatisがどれだけ知っているか(16)MyBatisマッピング
    MyBatisは何を知っていますか(17)MyBatisとJDBC
    MyBatisはどのくらい(18)MyBatisシステムを知っていますか