すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11671  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

というわけで、Androidアプリでデータベース機能を気軽に使うために? ORMLiteを使ってみるw

OrmLite - Lightweight Object Relational Mapping (ORM) Java Package
http://ormlite.com/

使い方は次のとおりで良いみたい。

  1. プロジェクトへライブラリ参照を組込み
  2. マッピングするテーブルクラスを作成
  3. リソースにConfigファイルを設定
  4. DatabaseOpenHelperクラス作成
  5. ORMLiteが提供するクラスを継承して、ServiceやActivityの処理クラスを作成

大まかにはこんな感じ。まぁ細かい事はまだまだこれからお勉強なので、今は、ほんの触りだけ。

プロジェクトへライブラリを組込み

Maven使っていれば簡単。

Maven Repository: com.j256.ormlite ≫ ormlite-android ≫ 4.48
http://mvnrepository.com/artifact/com.j256.ormlite/ormlite-android/4.48


ここにリポジトリ定義があるので、pom.xmlへコピペして保存。その後でプロジェクト更新すれば組込み完了。

自力の人は、jarファイルをダウンロードして、各自、プロジェクトから参照。依存関係は都度、解決してやってくださいまし。

マッピングするテーブルクラスを作成

いつものORMマッピングクラスと一緒w 使うアノテーションについては、ここにリファレンスが。

ORMLite Documentation: 2. How to Use
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#Class-Setup

シンプルな方法は、@DatabaseTableアノテーションでテーブル名を指定して、各マッピングフィールドに@DatabaseFieldアノテーションを追加していくこと。ID列の存在はORMするときにはお約束。作っておくと後々楽に対応できるので、持たせる方が吉。

リソースにConfigファイル設定

ORMLiteのConfigファイルはテキスト形式なんだけど、雛型を作るためのクラスが提供されてるの。

OrmLiteConfigUtil っていうんだけど、これをつかってConfigファイルをリソースフォルダに生成するとミスが無く簡単。

/**
** /res/raw/ormlite_config.txt Gen.
** !! /res/raw directory is exists before running !!
**/
public class DatabaseConfigUtil extends OrmLiteConfigUtil {
  private static final Class<?>[] classes = new Class[] {
    // Add your ORM-Mapping classes (ex.SimpleData.class)
    SimpleData.class,
  };
  public static void main(String[] args) throws Exception {
    writeConfigFile("ormlite_config.txt", classes);
  }
}

さくっとクラスを作成して、Javaアプリケーション起動すると作ってくれる。

image

そして、作成したテキストファイルに対してアクセスできるように、次のクラスにもgenフォルダ配下のRクラスにエントリーが出来てる。

image

これでConfigファイルの設定が完了。

DataBaseHelperクラスの作成

データベースへの接続とか、初回のテーブルオブジェクト生成とか、コードにするとメンドクサそうなデータベース関連の処理をまとめてやってくれるお助けクラスがAndroidアプリケーションには準備してある。それが SQLiteOpenHelperというクラス。このクラスをラップしたORMLiteSqlliteOpenHelperクラスっていうのがORMLiteから提供されているので、これを使うとデータベース周りのことをORMLiteにお任せできる仕組みになってるんだね。

ここで、ORMLiteを使う最大のメリット? といえると思うのだけれど、色々と毎回作るのが面倒くさいDaoクラス、DAOパターンを使うとなると必ずついて回るこのクラスをここで定義しておくと、わざわざクラスを定義する必要が無くなる!。実はORMLiteはDAOクラスのひな型を中で持っていて、データベーステーブルクラスと紐づけさえしておけば、そのクラスのDAOとして機能するあるの。つまり、FindAllとIDを条件とするSELECT、INSERT、UPDATE、DELETEの処理だけなら、わざわざ自分で作らなくても、ORMLiteのDAOクラスを使うことで書く手間もテストの手間も省ける寸法。

たしかにねー。毎回、FindAllとFindByIdとsaveとupdateとdeleteのために書いて、テストして、じゃねぇ(遠い目

ソースは長いので、サンプルのURLで割愛しとくw

ormlite-examples/android/HelloAndroid/src/com/example/helloandroid/DatabaseHelper.java at master ・ j256/ormlite-examples ・ GitHub
https://github.com/j256/ormlite-examples/blob/master/android/HelloAndroid/src/com/example/helloandroid/DatabaseHelper.java

Helperクラスができてくれれば、後は、いつもと一緒?<を

ORMLiteが提供するクラスを継承して、ServiceやActivityの処理クラスを作成

せっかく作ったHelperクラスを使用できるように、後はORMLiteXXXX系クラスを継承して、自分の欲しい処理クラスを書いて、動かしていくだけw

後の詳しい事は、また触りながら色々と覚えていくことにしてみようw

気持ち、ActivityはViewのつもり、でいるので、ModelとViewModelの層でのみHelperを参照するようにしたいなぁ、というのが本音。

ORMLiteXXXクラスはActivityで継承して使うから、コンストラクタで渡していくしかないけど、なんとかなりそうな感じだし、この方針でやってみよう。

SpringFrameworkを使うなら、HelperクラスをSingleで持っておいて、アプリケーションコンテキストにぶら下げてガンガン使っていけるんじゃないかなーとも思うんだけど、今回は使わなかったのでそのあたりはちょっと不格好というか不器用な作りになっちゃうけど、まぁいいやw

今日はここまでw

投稿日時 : 2014年7月8日 11:23

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント