BookService.java
/**
* 書籍管理サービスインタフェースです。
*/
public interface BookService {
/**
* 書籍データの更新・挿入処理を行います。
* 更新処理でデータが1件も更新されなかった場合、
* 新規データとみなして挿入処理を行います。
* @param book書籍データ
*/
void updateOrInsertBook(Book book);
}
BookServiceImpl.java
/**
* 書籍管理サービスインタフェース実装クラスです。
*/
public interface BookServiceImpl implements BookService {
public void updateOrInsertBook(Book book) {
// DAOクラスの生成
BookDao bookDao = new BookDao();
// 更新処理
int result = bookDao.update(book);
// 更新件数が0なら挿入処理
if (result == 0) {
// 挿入処理
bookDao.insert(book);
}
bookDao.insert(book);
}
}
UpdateBookAction3.java
/**
* 書籍データ更新・挿入アクション(サービスレイヤの導入)です。
*/
public class UpdateBookAction3 extends Action {
/**
* 書籍の更新処理を行います。
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res)
throws Exception {
UpdateBookForm bookForm = (UpdateBookForm) form;
// FormBeanからドメインオブジェクトにデータをコピー
Book book = new Book();
BeanUtils.copyProperties(book, form);
// ①更新 or 挿入処理
BookService service = new BookServiceImpl();
service.updateOrInsertBook(book);
return mapping.findForward("success");
}
}