DSOL. software 実装ガイド > DAOクラスの実装

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

DAOクラスの実装

自動生成DAO [#icf327a7]


  • daoパッケージにあるsuffixがBaseDAOのクラスです。
  • 各エンティティ毎のDAOはデータベースのスキーマ情報により自動生成されます。
以下の基本的な機能は実装済みです。
機能 メソッド名
PK検索 findByPK
挿入 save
更新 update
1key検索 findByXXXX

独自DAO [#sd350cdd]

必ず以下の実装方法1(Criteria)または実装方法2(HQL)で実装してください。&br;この2つの実装方法を採用する限り、SQLインジェクション、クロスサイトスクリプティングによる当システムへの攻撃を回避することができます。 ;


  • daoパッケージに{テーブル名}DAOという
何も実装していないクラスがありますので、

このクラスにメソッドを随時追加実装して下さい。

public class EmpTblDAO extends EmpTblBaseDAO
{
   /**
    * コンストラクタ
    * @throws DaoException
    */
   public EmpTblDAO(Session session) throws DaoException {
       super(session);
   }
   // 必要に応じて追加実装して下さい。
}

実装方法1(Criteria)


org.hibernate.Criteriaとorg.hibernate.criterionパッケージのAPIを駆使し、
データベースからレコードを取得する。

(empNameでlike検索をする例)
public List getEmpList(String empName){
    Criteria criteria = getSession().createCriteria(Emp.class);
    criteria.add(Restrictions.like("empName", "%" + empName + "%"));
    criteria.list();
}

実装方法2(HQL)


HQL文を作成しデータベースからレコードを取得する。

(empNameでlike検索をする例)
public List getEmpList(String empName){
    String hql = "from Emp where empName like :empNo";
    Query query = getSession().createQuery(hql);
    query.setString("empNo", "%" + empName + "%");
    query.list();
}