ドリリウム

ひょんなことからドリルを手に入れ、家具を作ろうと思い立ちました。DIY、アクアリウム、車、釣り、コーヒー

MENU

AndroidアプリでSQL Serverに接続したい

2017.11.7 加筆修正

 

最近は.NET、Java。DBはSQL Server。

そんな環境にどっぷりいて、いろんなものに置いて行かれている気がします。WebはPHPとJava以外はろくに経験がなく、特にJavaはもう頭の片隅にこびりついた程度の知識しかありません。 

 

そんな時代遅れな僕がAndroidアプリを作ることになりました。

もちろん先進的で革新的なアプリを作る訳ではありません。しかし、まず初めの第一歩として、AndroidアプリからSQL Serverに接続する方法に躓いて、なんとか解決できたので記録に残します。

AdroidアプリでSQL Serverに接続したい

さて、まずは「Androidアプリ DB接続」「Android DB」などと検索するも、情報がありません。というか、基本的にはできないそうです。

JavaでDB接続する時にはJDBCドライバーを使いますが、独自のVM上で動くAndroidアプリには対応していないケースが多いらしいのです。案の定、SQL Serverはダメでした。Microsoftが公開しているすべてのバージョンのJDBCドライバーで試したけどダメ。

 

こういう時の正攻法は、WebAPIを使った方法だそうです。

Web APIとは

Web APIという名前からなんとなく想像はつきます。

検索してみると、こうした解説サイトがいくらでも出てくるわけですが、ふわっとしか理解できません。どうにも具体的な定義や形がないものと思われます。

qiita.com

thinkit.co.jp

 

そこで、実際の作り方を調べてみました。

実際の作り方を調べることで、その実態のイメージがより鮮明になるかと思ったわけです。

 

ここまで読んで、なんとなく理解できた気がします。

 

Web APIとは、WebページやWebアプリと同じようなものだということです。

WebページやWebアプリと同じようにJavaやPHP、ASP.NETなどで作成します。同様に、Webサーバーに設置します。しかし、WebページやWebアプリと決定的に違う点として、Web APIはブラウザに表示させたり、人が見ることはありませんAPIというワードからわかる通り、Web APIも人ではなくアプリケーションのためにあります。今回でいえば、Androidアプリからわかる形でデータを入出力できるWebページがWeb APIということになります。

ここでいう入出力とはHTTP通信です。

入力はHTTPリクエストで、出力はHTTPレスポンスです。

まとめ

Androidアプリは直接DBに接続できません。

しかし、HTTP通信ができます。

HTTP通信というのは、普段インターネットを見ている時にブラウザがやってくれているやつです。AndroidでHTTP通信をする方法は「Android HTTP通信」などと検索すると、山ほど出てきます。

例えばこことか:AndroidでのHTTP通信 - Qiita

 

一方で、Web APIの作成はAndroidプログラミングとは別技術です。 

Webアプリ開発の領域ということになります。

 

AndroidアプリからDBに接続する3ステップ

つまり、何をどうすれば良いかというと、以下の3ステップが必要です。

ステップ1

DBからデータを取得したり、データを更新したり、削除する機能を持ったWeb APIを作成します。

ステップ2

AndroidアプリにWeb APIへのHTTP通信を行う機能を実装します。

ステップ3

Web APIとHTTP通信を行い、AndroidアプリからWeb APIを操作することで、Web APIを通してDBからデータを取得したり更新したりします。

 

 

素人なりに調べた結果が以上の通りで、実際に実装してもうまく動作させることができます。Web APIにHTTPリクエストで抽出条件や更新条件、追加するデータなどを送り、その結果をHTTPレスポンスから取得します。

 

AndroidアプリでHTTP通信する方法はネットにいくらでも情報があります。

しかし、Web APIに関しては先述の通りWebアプリ開発の領域です。また、あまりにも多種多様な形態があるようで、まさしくこれだ!という情報が見つかりません。Web APIからAndroidアプリでデータを取得する時のデータの形式は、JSONだとかXMLが一般的なようです。そこらへんはWebの基本的な仕組みがわかっていないとダメみたいで、結局本を買いました。

イラスト図解式 この一冊で全部わかるWeb技術の基本 

 

もちろんネットで調べながらでも問題ないと思います。

でも、ここら辺が理解できるだけで、AndroidでDB接続するときのイメージがかなりクリアになります。