iBATIS入門 First step guide iBATISのアーキテクチャ Paramete Object (Input) SqlMap .xml JavaBean SqlMapConfig .xml SqlMap .xml Result Object (Output) JavaBean SQL Map Map (HashMap, TreeMap,..) Mapped Statement Mapped Statement Mapped Statement Map (HashMap, TreeMap,..) “Primitive” (Integer, String,..) Mapped Statement Mapped Statement Mapped Statement “Primitive” (Integer, String,..) Mapped Statement Mapped Statement Mapped Statement XML XML (Caching,Lazy Loading,..) JDBC Database SqlMapConfig.xml • iBATIS全体に関わる設定を行う − トランザクションマネージャの設定 • JDBC or JNDI or DBCP − 各種パラメータ • キャッシュ設定、遅延ロード設定 • 最大/最小リクエスト数、セッション数、トランザクション数 − 利用するSqlMapファイルの指定 SqlMap.xml • SQL文の定義 − 各SQL文にはユニークなidを指定 • クエリへのInputパラメータの埋め込み − パラメータのクラス名とフィールド名で指定 • クエリ実行結果とOutputパラメータのマッピング − テーブルのカラム名(又はエイリアス名)とクラスのフィー ルド名が同じ場合は自動的にマッピング − そうでない場合は<resultMap>で対応付け • 原則として1テーブル毎に作成 使用例)Select PERSON Select実行例 ・・・ SqlMapClient sqlMap = getSqlMap(); ・・・ Integer personPk = new Integer(5); Person person = (Person)sqlMap.queryForObject(“getPerson”, personPK) ・・・ PER_ID NUMBER(5,0) PER_FIRST_NAME VARCHAR(40) PER_LAST_NAME VARCHAR(40) PER_BIRTH_DATE DATE PER_WEIGHT_KG NUMBER(4,2) PER_HEIGHT_M NUMBER(4,2) Person.xml <select id=“getPerson” parameterClass=“int” resultClass=“Person”> SELECT PER_ID as id, PER_FIRST_NAME as firstName, PER_LAST_NAME as lastName, PER_BIRTH_DATE as birthDate, PER_WEIGHT_KG as weightInKillograms, PER_HEIGHT_M as heightInMeters FROM PERSON WHERE PER_ID = #value# </select> 引数が単一の primitive型の場合、 #value#で指定可能 Person.java int id String firstName String lastName Date birthDate double weightInKilograms double heightInMeters PK 使用例)Update PERSON Update実行例 ・・・ person.setHeightInMeters(1.83); person.setWeightInKilograms(86.36); ・・・ sqlMap.update(“updatePerson”, person) ・・・ PER_ID NUMBER(5,0) PER_FIRST_NAME VARCHAR(40) PER_LAST_NAME VARCHAR(40) PER_BIRTH_DATE DATE PER_WEIGHT_KG NUMBER(4,2) PER_HEIGHT_M NUMBER(4,2) Person.xml <select id=“updatePerson” parameterClass=“Person”> UPDATE PERSON SET PER_FIRST_NAME = #firstName#, PER_LAST_NAME = #lastName#, PER_BIRTH_DATE = #birthDate#, PER_WEIGHT_KG = #weightInKillograms#, PER_HEIGHT_M = #heightInMeters# WHERE PER_ID = #id# </select> #フィールド名#で指定 Person.java int id String firstName String lastName Date birthDate double weightInKilograms double heightInMeters PK
© Copyright 2024 ExpyDoc