[Android] データベースを簡単にするライブラリ ActiveAndroid

Android7 

DataBaseのSQLiteを使うときにSQL文を書くのは面倒です。そんな時に、簡単にデータベースを管理してくれるライブラリーにActiveAndroid があります。
 
activeandroid01

Android Studio 2.2.2
Android 7.1.1

 

sponsored link

ActiveAndroid

 
こちらからzipファイルをダウンロードして、jarファイルをビルドしprojectに追加するとできます。ダウンロード先:ActiveAndroid

 
activeandroid_1
 
あるいはjarファイルを直接ダウンロードすることもできます
https://github.com/pardom/ActiveAndroid/downloads
 

Mac の場合

この後は、Mac の場合はターミナルでできます
 
ターミナルを起動して
ダウンロードして解凍したフォルダ内に入り

sh gradlew build

 
パッケージのフォルダ内に ../build/libs/activeandroid.jar ができています
 
できた jar ファイルをライブラリーフォルダーに入れます
 

Windows の場合

 
Windows のコマンドプロンプトを使い
ダウンロードして解凍したフォルダ内に入り

gradlew build

を実行します

../build/libs/pardom-ActiveAndroid-xxx.jar
../build/libs/pardom-ActiveAndroid-xxx-javadoc.jar
../build/libs/pardom-ActiveAndroid-xxx-sources.jar
ができます

activeandroid_x

/build/libs/にあるpardom-ActiveAndroid-xxx.jar (/buildの下の/libs/です)
をライブラリーフォルダーに入れます

エラーが発生した場合:エラー内容にもよりますが。JDKのパスをJAVA_HOMEとしてシステム環境変数に設定する場合がおおいかもしれません。

 

環境変数のシステム環境変数にJAVA_HOMEに、JDKのバスを設定

jdk_path

C:\Program Files\Java\jdk1.8.x_xx

この場合、exeファイルはbin以下にありますがbinは指定しません

Android Studio

 
libsフォルダーをプロジェクトのapp以下に作成してjarを入れます。
 
スクリーンショット 2015-04-20 11.22.03
 
build.gradle(Module: app) に実際に入れたjarファイル名を記述しSyncします

 

Manifest の設定

 
android:name=”com.activeandroid.app.Application” と
AA_DB_NAME を test.db
AA_DB_VERSION を 1
として
AndroidManufest.xml に追加します

 

Model を継承したクラスの作成

 
id はデフォルトで設定されているのであえて作らなくても大丈夫です

Item.java

 
ここまでで準備ができましたので
実際のプロジェクトでデータを扱って見ましょう
 

1件データの登録

 
1件のkeyDataとvalueDataの登録

 

登録と読み出しアプリ

 

とりあえず、データを登録して読み出す簡単なアプリを作ってみます。

MainActivity.java

 
activity_main.xml

 
このような感じでシンプルな機能のみのアプリになりました。
 

activeandroid01
 
その他の機能について以下に記述しました。
 

複数のデータの登録

 
まとめてデータを登録したい場合

ただこれでは毎回インスタンスを作成するので
コストがかかります
 

transactions

 
同時にデータの登録をする時は transactions を使うと100倍早いそうです

 

データを取り出す

 
例えば6番目のデータを取り出す時は
 

 
 

データの削除

 
4番目のデータを削除するとき

 

ランダムにデータを取り出す

 
ランダムにデータを取り出せます

 

クエリ

 
Id が 5 あるいは “ABCD” の検索です

 
 

データベースを削除する

 
ActiveAndroidの使いにくい点として、登録データを削除すると、それに関係していたIDがなくなっているということです。(もしかしたら修正されているか、代案があるのかもしれませんが)
データベースを削除してしまう方法です。ただこれは一旦アプリを終了させないと反映されません。またデータベースを使用中だと削除されないようです。
 

 
ここで設定しているのはアプリ内のメモリにあるデータベースで、ターミナルなどで入っていくとデータベースの実体が見えてきます。セキュリティブロックされないようにするは run-as を使います。
 

 

Android Studio 2.0 でのエラー

(2016/4/26) ActiveAndroidがAndroid Sudio2.0において実行エラーとなります。gradle wrapper2.10以降の問題と思われますが、ワークアラウンドとしてはInstant Runを一時的に止めることで対応できます。
File->Settings->Build, Execution, Deployment->Instant Run
にて「Enable Instant Run …」のチェックを外す
その他の方法も以下にあります
staackoverflow

尚、この現象はAndroid Studio 2.1 で解消されました。
 

Reference:
Getting-started