ドリリウム

趣味をとことん突き詰めるブログ。ペット / フィンチ / カメラ / 高知 / 釣り / DIY / バイク / 車 / 家具制作 / アクアリウム / コーヒー / 地方移住 / ルノー・ルーテシア / SUZUKI ST250 E type / EOS Kiss M

こんにちは。カタミチ(@katamichi2h)です。

お問い合わせsyufukc@gmail.com / Twitter

AndroidアプリでSQL Server等のDBへ接続したい

f:id:katamichinijikan:20180731220105p:plain

2019年5月12日加筆修正

 

私は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です。

検索してみると、こうした解説サイトがいくらでも出てくるわけですが、ふわっとしか理解できません。

どうにも具体的な定義や形がないものと思われます。

qiita.com

thinkit.co.jp

 

そこで、実際の作り方を調べてみることで具体的なイメージを掴もうと思います。

以下の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からデータを検索して取得したいとしましょう。

 

 

  1. AndroidアプリはWebAPIにHTTPリクエストでDBに対する検索条件を渡す
  2. WebAPIはHTTPリクエストで受け取った検索条件でDBを検索する
  3. WebAPIはDBの検索結果を必要に応じて成形してAndroidアプリにHTTPレスポンスで返す

f:id:katamichinijikan:20180412093918p:plain

 

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)

基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)

 

 

その他開発関係の記事はこちら。

プログラミング カテゴリーの記事一覧 - ドリリウム

Androidはこれっきりで、普段は.NETとかPHPが多いです。

 

▼IT系の転職なら

▼誰かにプログラミングを教えてみませんか?

▼釣り具の宅配買取なら