SSブログ

MyBatis のサンプルを作ってみる (複数のテーブルから情報を取得) [開発]

2014/10/13:
修正しました。


複数のテーブルを結合して情報を取得するサンプルを作ります。

MyBatis と Spring Framework の環境構築方法は下記を参照してください。
10/1 ブログ (MyBatis のサンプルを作ってみる)

(1) データベースの準備
テーブルは前回 (データベースの外部結合について (MySQL)) 作ったものをそのまま使います。

tbl_hello;
tbl_hello_20141005.png

tbl_language;
tbl_language_20141005.png

(2) Mapper を作成します。
package sample;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

public interface HelloMapper {
  @Select("select tbl_hello.id, message, language from tbl_hello left join tbl_language on tbl_hello.lang_id = tbl_language.id where tbl_hello.id = #{id}")
  HelloDto getById2(int id);
}

(3) 結果格納用クラスを新しく作成します。
package sample;

public class HelloDto {
  int id;
  String message;
  String language;

  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getMessage() {
    return message;
  }
  public void setMessage(String message) {
    this.message = message;
  }
  public String getLanguage() {
    return language;
  }
  public void setLanguage(String language) {
    this.language = language;
  }
}

(4) 動作確認用コードを作成します。
public class SampleMain {
  public static void main(String[] args) {
    String resource =
        "src/main/webapp/WEB-INF/applicationContext.xml";
    ApplicationContext ac =
        new FileSystemXmlApplicationContext(resource);
    HelloMapper helloMapper = (HelloMapper) ac.getBean("helloMapper");
    HelloDto helloDto = new HelloDto();
    for (int i = 1; i <= 4; i++) {
      helloDto = helloMapper.getById2(i);
      System.out.println("No." + helloDto.getId() +
          ": " + helloDto.getMessage() +
          "(" + helloDto.getLanguage() + ")");
    }
  }
}

実行すると下記の通り表示されます。
No.1: おはよう(日本語)
No.2: こんにちは(日本語)
No.3: こんばんは(日本語)
No.4: good morning!(英語)


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)

nice!(0)  コメント(0) 
共通テーマ:blog

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。