AndroidアプリでSQL Server等のDBへ接続したい
ドリリウムは移転しました。
約5秒後に自動的にリダイレクトします。
2019年5月12日加筆修正
AndroidアプリでどうやってDBへ接続するの?
私はAndroidを含むスマートフォンアプリを全く開発した経験がありません。
しかし、仕事で簡単なスマートフォンアプリを作る必要に迫られました。
データを参照する程度のとても簡単なものなのですが、DB接続でいきなり詰まりました。
普段は.NETやJavaなどを使ってWindowsアプリケーションを開発しています。
.NETやJavaからのDB接続はもはやあまりに当たり前で、そもそも大抵の会社では独自の実装を持っており、あまりDB接続について意識することはありません。
そんな私がなんとかDB接続をすることができましたのでその方法をまとめています。
AdroidアプリからDB接続はできません
まずは
- Androidアプリ DB接続
- Android DB
などと検索するも、情報がありません。
というか、できないそうです。
JavaでDB接続する時にはJDBCドライバーを使いますが、独自のVM上で動くAndroidアプリには対応していないケースが多いらしいのです。
案の定、私の使いたいSQL Serverはダメでした。
Microsoftが公開しているすべてのバージョンのJDBCドライバーで試したけどダメ。
それではどうやってDBを使うのかというと、WebAPIを使う方法が一般的なようです。
Web APIってなに?
Web APIという名前からなんとなく想像はつきますね?きっとWebのAPIです。
検索してみると、こうした解説サイトがいくらでも出てくるわけですが、ふわっとしか理解できません。
どうにも具体的な定義や形がないものと思われます。
そこで、実際の作り方を調べてみることで具体的なイメージを掴もうと思います。
以下の2サイトは一例ですが、Web APIの作り方が掲載されています。なんとなくさらっと流し読むとイメージがより掴みやすいかと思います。
ここまで読んで、なんとなく理解できた気がします。
Web APIとは
Web APIとは、その実体はWebページやWebアプリと同じものです。
WebページやWebアプリと同じように、JavaやPHP、ASP.NETなどで作成します。
WebページやWebアプリと同じように、Webサーバーに設置します。
しかし、WebページやWebアプリと決定的に違う点として、Web APIはブラウザに表示させたり、人が見ることがありません。
画像やおしゃれに配置されたテキストは不要というわけです。
APIというワードからわかる通り、Web APIも人ではなくアプリケーションのためにあります。
今回のケースでは、DBと接続してデータを入出力できるWebページ(Web API)を作れば良いというわけです。
そのWebページに、Androidアプリでアクセスして、間接的にDBに接続します。
例えば、DBからデータを検索して取得したいとしましょう。
- AndroidアプリはWebAPIにHTTPリクエストでDBに対する検索条件を渡す
- WebAPIはHTTPリクエストで受け取った検索条件でDBを検索する
- WebAPIはDBの検索結果を必要に応じて成形してAndroidアプリにHTTPレスポンスで返す
WebAPIの作成にはWeb開発の知識が必要
ここまでの説明で分かる通り、WebAPIの開発はAndroidの開発とは少し違います。
Webアプリを作られたことがあれば簡単にイメージがつかめ、着手できると思いますが、そうではない場合にはWebアプリの作り方や仕組みから知る必要があります。
HTTP通信について知らなければ、これまでの説明もピンとこないでしょう。
そもそもHTTP通信ってなに? → AndroidでのHTTP通信 - Qiita
AndroidアプリでHTTP通信する方法はネットにいくらでも情報があります。
しかし、Web APIに関しては先述の通りWebアプリ開発の領域です。
また、あまりにも多種多様な形態があるようで、まさしくこれだ!という情報が見つかりません。
Web APIからAndroidアプリでデータを取得する時のデータの形式は、JSONだとかXMLが一般的なようです。
そこらへんはWebの基本的な仕組みがわかっていないとダメみたいで、結局本を買いました。
AndroidアプリからDBに接続する3ステップ
つまり、何をどうすれば良いかというと、以下の3ステップが必要です。
ステップ1
DBの操作ができるWebAPIを作成します。
ステップ2
AndroidアプリにWebAPIへのHTTP通信を行う機能を実装します。
ステップ3
WebAPIとHTTP通信を行い、AndroidアプリからWeb APIを操作することで、Web APIを通してDBを操作します。
ある意味アナログ?力業?とも取れますが、これが正攻法のようです。
素人なりに調べた結果が以上の通りで、実際に実装してもうまく動作させることができます。
基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)
- 作者: WINGSプロジェクト齊藤新三,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
その他開発関係の記事はこちら。
Androidはこれっきりで、普段は.NETとかPHPが多いです。