atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
とりあえず雑記帳(跡地)
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
とりあえず雑記帳(跡地)
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
とりあえず雑記帳(跡地)
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • とりあえず雑記帳(跡地)
  • Slim3
  • とりあえずSlim3アプリケーションを作ろう
  • Daoが現れたよ

とりあえず雑記帳(跡地)

Daoが現れたよ

最終更新:2012年01月01日 21:15

fujiyan

- view
管理者のみ編集可

Daoの出現

  • [gen-model-with-dao]targetでModelを作成すると、[Root Package]直下に"dao"というサブパッケージが作成され、その中に[作成したModel名]Daoというクラスが自動生成されます。
    • BookDaoの場合
package jp.fujiyan.booklist.dao;
 
import org.slim3.datastore.DaoBase;
 
import jp.fujiyan.booklist.model.Book;
 
public class BookDao extends DaoBase<Book>{
 
}
 

  • 一見すると、何にもなさそうですが、スーパークラスであるDaoBaseに、Datastoreでの操作に必要なメソッドが一通り定義されています。
メソッド 内容
put 引数に指定したModelを永続化します
delete 引数に指定したKeyのModelをDatastoreから削除します
get 引数に指定したKeyのModelをDatastoreから取得します
query Datastoreに対する、Modelの問い合わせを実行するための、ModelQueryを返します




Daoとはなんぞや

  • Daoは、とあるModelについて、Datastoreに対する操作を管理するクラスになります。
  • Datastoreを操作するためのクラス(com.google.appengine.api.datastoreや、org.slim3.datastoreに属するクラス)は、「極力」Daoパッケージのクラスを通じてアクセスするようにします。
    • その他のパッケージ(後述のServiceやController等)は、Datastoreを操作するためのクラスとの依存関係を持たないようにします。
  • もちろん、いくつかの例外もあります。
    • Entityの物理キーであるKeyクラス。Keyオブジェクトを利用して、操作するModel(Entity)を指定するためです。
  • なぜ、そうするのかというと、将来、Datastoreを操作するためのクラスのアーキテクチャが変更/拡張された場合に、その影響をDaoパッケージのクラスのみに押さえ込むためです。

パッケージ図

  • 上記の場合、Serviceパッケージは、常にDaoパッケージを通じてのみ、Datastoreにアクセスするようになります。
  • これによって、Datastoreのアーキテクチャ変更について、Serviceクラスは気にしなくても良くなります。
  • このように、クラスをパッケージ単位で分割し、パッケージ間の依存関係を極力単純(依存するパッケージ数を少なくし、その依存関係も単方向)にすることで、変更に強いアプリケーションとなります。



Daoのカスタマイズ

  • DaoBaseで定義された、標準的な操作ではプリミティブ過ぎて扱いづらいので、実際にはよりModelを扱いやすくするためのメソッドを適宜定義していきます。
    • そのメソッドの中で、DaoBaseのメソッドを利用していくことになります。
  • まぁ、その辺は後ほど
「Daoが現れたよ」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • Dao.PNG
とりあえず雑記帳(跡地)
記事メニュー

メニュー

  • トップページ
  • コメント
  • とりあえずインターフェース入門
  • Yesod
  • Haskell
  • Slim3
  • JavaScript
  • Google App Engine
  • Android
  • Facebook
  • GWT
  • OpenSocial
  • Struts 2
  • Subversion
  • Apache
  • JSONIC
  • Flex

  • WebコミックLibraryについて

公式サイト

  • Yesod
  • Haskell
  • Slim3
  • JavaScript - MDN
  • App Engine for Java
  • Android Developers
  • Google Web Toolkit
  • Struts
  • OpenSocial
  • OSDE

  • ToDo

ここを編集
記事メニュー2
間違いの御指摘は
コメントまでm(_ _)m

更新履歴

取得中です。


ここを編集

総数: -
本日: -
昨日: -
人気記事ランキング
  1. Slim3/とりあえずSlim3アプリケーションを作ろう/Controllerで画面作成
  2. Struts 2
もっと見る
最近更新されたページ
  • 4400日前

    Haskell
  • 4400日前

    Yesod
  • 4400日前

    トップページ
  • 4510日前

    メニュー
  • 4511日前

    Struts 2
  • 4537日前

    コメント
  • 4706日前

    Google App Engine
  • 4743日前

    Slim3/環境構築とプロジェクト作成
  • 4768日前

    Google App Engine/キャッシュの計画
  • 4778日前

    Slim3/文字列の部分一致検索とページング
もっと見る
人気記事ランキング
  1. Slim3/とりあえずSlim3アプリケーションを作ろう/Controllerで画面作成
  2. Struts 2
もっと見る
最近更新されたページ
  • 4400日前

    Haskell
  • 4400日前

    Yesod
  • 4400日前

    トップページ
  • 4510日前

    メニュー
  • 4511日前

    Struts 2
  • 4537日前

    コメント
  • 4706日前

    Google App Engine
  • 4743日前

    Slim3/環境構築とプロジェクト作成
  • 4768日前

    Google App Engine/キャッシュの計画
  • 4778日前

    Slim3/文字列の部分一致検索とページング
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 鹿乃つの氏 周辺注意喚起@ウィキ
  2. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. AviUtl2のWiki
  6. シュガードール情報まとめウィキ
  7. ソードランページ @ 非公式wiki
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  10. 星飼いの詩@ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 検索してはいけない言葉 @ ウィキ
  7. オレカバトル アプリ版 @ ウィキ
  8. 発車メロディーwiki
  9. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  10. 英傑大戦wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 参加者一覧 - ストグラ まとめ @ウィキ
  4. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 旧トップページ - 発車メロディーwiki
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. マリオカート ワールド - アニヲタWiki(仮)
  8. コメント/雑談・質問 - マージマンション@wiki
  9. フェイルノート - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. RqteL - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.