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();
}