22
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IntelliJ IDEAAdvent Calendar 2013

Day 8

IntelliJ IDEA 13の新機能 - AndroidのSQLiteデータベースに直接接続してみた

Last updated at Posted at 2013-12-08

IntelliJ IDEAはバージョン13からAndroidのSQLiteデータベースに直接接続できるようになりました。
これまでもAndroid端末のSQLiteデータベースの中身を参照する方法はいくつかありましたが、rootを取ったり、端末のデータベースファイルをローカルに抽出してからDatabaseツールで参照するなど、ひと手間必要な方法ばかりでした。しかしIntelliJ IDEAの新機能ではroot化の必要無しで、データベースに直接接続することができます。

準備

まずはテーブルにデータをinsertする簡単なアプリを作ってデータを登録し、データベースに接続してみます。

ちょうどormLiteを試していたところなのでそれをサンプルアプリとして使いました。
テキストボックスに入力した内容をwordテーブルに登録してテーブルの全内容をListViewで表示するだけの簡単アプリです。

device-2013-12-08-160622.png

wordテーブルの定義は以下の通り。

カラム 備考
id INTEGER AUTOINCREMENT
value TEXT 入力値を保存

サンプルアプリはGitHubにおいてあります。

端末に接続

まずはサンプルアプリをUSB経由で端末に転送してインストールします。
次にDatabaseツールウィンドウの+ボタンを押してAndroid SQLiteを選択します。

スクリーンショット 2013-12-05 0.29.05.png

Data Sources and Driversダイアログが表示されるので対象の端末、Package名、Databaseファイル名を選択します。
当たり前ですが端末が繋がった状態でなければ設定できません。
ダイアログの下にSQLite driver missingのエラーが表示されている場合はDownloadをクリックすると自動でダウンロードされます。
スクリーンショット 2013-12-05 2.03.48.png

Synchronizeボタンを押すと接続を行い、指定したデータベース内のテーブルが表示されます。
ここからは既存のDatabaseツールでおなじみのUIです。
スクリーンショット 2013-12-05 2.05.07.png

テーブルを開くと確かに中を参照することができました。
スクリーンショット 2013-12-05 2.06.50.png

MySQLなどのデータベースに繋いだときは自動でテーブルの情報を表示してくれますがAndroid SQLiteの場合は現状ではSynchronizeボタンを押さないと表示されないようです。
とはいえ操作はとても簡単で今までに比べるとずいぶん楽です。

データの更新

テーブルを開いて内容を直接書き換えてみます。
スクリーンショット 2013-12-05 2.07.23.png

変更した内容を端末のアプリに反映させるには右クリック→Uploadする必要があります。
スクリーンショット 2013-12-05 2.10.38.png

通常のデータベース操作よりは1アクション必要ですが、端末上のデータを直接触れるのは便利です。
もちろんデータの追加や削除も同様に行えます。

SQLによるデータ操作

既存のDatabaseツールと同様に右クリック→ConsoleからConsoleウィンドウを立ち上げてSQLを実行することもできます。

スクリーンショット 2013-12-05 2.15.38.png

Database ConsoleにSQLの結果が表示されます。
スクリーンショット 2013-12-05 2.15.48.png

もちろんinsert,update,deleteといった更新クエリも実行できます。

まとめ

Android SQLiteのDatabase機能はAndroid 2.2以上の端末で実行可能とのことです。
もちろん実機だけでなくエミュレーターでも可能でした。

そのほか、IntelliJ IDEA 13からTerminal機能が利用できるようになり、OSのターミナルを起動しなくてもIntelliJの中でコマンドを発行できるようになりました。
Androidの開発ではadbコマンドなどを発行する時にターミナルを使うことがよくあるのでこの機能も地味に便利です。

スクリーンショット_2013-12-08_16_16_21.png

また、Android DDMSウィンドウの左上にカメラマークのアイコンが追加され、スクリーンショットを撮ることができるようになりました。
わざわざ個別にDDMSを立ち上げる必要がありません。これも地味に便利です。
スクリーンショット 2013-12-08 16.13.57.png

Database機能はUltimate Editionのみの機能ですがデザイナ機能などDatabase以外の機能も強力なのでAndroid開発者は購入して損は無いと思います。

22
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?