追加お題

さて、S2Strutsで表示までできた。次はどうしようかと悩んでいるとid:yuki_neko_nyanから追加お題。「パイロットを選ぶと搭乗機の一覧が取得できるようにしよう」
まず、パイロットのテーブルはないので登場人物のテーブルを作ることにする。んで、必要な要素は何かを考える。まぁ、ID、名前、性別、所属ってところでしょうか。
んじゃそのためのCREATE TABLE文を作りましょ。

CREATE TABLE PERSON(
  ID NUMERIC(3) NOT NULL PRIMARY KEY,
  NAME VARCHAR(50) NOT NULL,
  SEX CHAR(1) NOT NULL,
  BELONG_TO_CODE NUMERIC(2) NOT NULL
);

ま、こんなもんでしょう。テーブルが出来たらDAOとエンティティを作成するべし。
ますはエンティティクラス。↓redrisefirm.seasar.s2dao.entity.PersonEntity.java

public class PersonEntity implements Serializable {

  public static final String TABLE = "PERSON";

  private int id;

  private String name = null;

  private String sex = null;

  private int belongToCode;

・・・(getter/setterは省略)・・・
}

次にDAOインターフェース。↓redrisefirm.seasar.s2dao.dao.PersonDao.java

public interface PersonDao {

  public Class BEAN = PersonEntity.class;

  public int insert(PersonEntity personEntity);

  public int update(PersonEntity personEntity);

  public int delete(PersonEntity personEntity);

  public PersonEntity getPersonEntity(int id);

  public static final String getPersonEntity_ARGS = "id";

  public List getAllPerson();

  public static final String getAllPerson_QUERY = "order by id, belong_to_code, name";
}

dao.diconにPersonDaoを登録して、

<component name="PersonDao" class="redrisefirm.seasar.s2dao.dao.PersonDao">
  <aspect>interceptor</aspect>
</component>

テストデータを作成し、簡単にPersonDaoのテストを書く。内容は他のDAOのテストと同様なので省略。