【初心者向け】Androidアプリで外部データベースからデータ取得する方法

このQ&Aのポイント
  • Androidアプリで外部データベースからデータを取得する方法について紹介します。
  • 初心者向けの実装方法や参考サイトについても解説します。
  • 専門用語が多くて困っている方にも分かりやすく説明します。
回答を見る
  • ベストアンサー

Androidアプリで外部データベースからデータ…

こんにちは Androidアプリを勉強しながら作成しています。 今までPHPとMySQLをやっていたのですが、JAVA初体験でわからない事が沢山あり専門書を見たりネットで検索したりしております。 今回の質問はAndroidアプリ側で『hogehoge』と入力した場合、外部データベースへ飛んでその中から『hogehoge』に関連した情報を取得したいと思っているのですが、その手法がわかりません。 専門用語が羅列しているので、なかなか検索する事も出来ず困っております。 どのようにしたらデータ取得出来るのか教えてください。 また、参考になるサイトがございましたら、是非教えてください。 【質問内容】Androidアプリで外部(インターネット上)にあるデータベースからデータ取得したい なにぶん初心者なのでよろしくお願いいたします。

  • Java
  • 回答数3
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 こんなサンプルはどうですか?

参考URL:
http://ueblog.natural-wave.com/2007/12/10/java-rest/
nstammy507
質問者

お礼

tannoy-fanさんありがとうございます。 参考URLを解読(?)しながら、ちょっと頑張ってみます。 Webだと考えずに出来ていた事が、言語変わると全く出来ずにするので、すごくイライラしちゃいます。 ちょっとずつ勉強しながら覚えて行きたいと思っています。 ありがとうございました。

nstammy507
質問者

補足

やってみましたがイマイチうまく出来ませんでした 涙 質問の仕方すらわからない初心者なので、やりたい事まとめて質問した方が早いかもしれません 教えて頂きありがとうございました。

その他の回答 (2)

noname#161640
noname#161640
回答No.3

いや、いきなりRESTのサンプルを紹介するのは、ちょっとどうでしょうか。そもそもデータベースアクセスじゃないし……。 既にPHPとMySQLはわかるんですよね? なら、例えばHTMLページからフォームを送信し、その内容に応じてデータベースアクセスして結果を表示する、というような処理はわかりますよね? それなら、簡単です。HTMLのフォームの代りに、Androidからプログラムを使ってPHPページに送信をして結果を受取ればいいんです。 つまり、サーバー側にあらかじめPHPなどを使ってデータベースにアクセスするための仕組みを用意しておき、Androidからはそのアドレスにアクセスをして結果を受け取るわけです。サーバー側とAndroid(クライアント)側の両方にプログラムが必要ということです。 HTTPサーバーアクセスには、HttpURLConnectionクラスを遣います。HttpURLConnection postといった感じで検索するといろいろとサンプルが見つかりますよ。 http://www.deftrash.com/blog/archives/2007/02/httpclient.html

nstammy507
質問者

お礼

重ね重ねありがとうございます。 画像の件といい感謝しております。 まさにやりたい事はコレです。 アプリ側でPHPに ID=1 を送って 結果を受け取る感じ。 RESTがそうなのかなと思ってたのですが、違うんですね。悩 頑張ってやってみましたが基本的にJavaがわかっていないので悪戦苦闘しております。 1から勉強するにも 何が1なのかわからないと言うレベル・・・ たぶん他の言語を無駄に知っているので 関数ってものがなんなのか理解出来ないのです。 ちょっと頑張ってやってみたいと思います。 本当にありがとうございました。

回答No.1

 PHPはMySQLが内部データベースをサポートしていますが、外部データベースをアクセスするときは、API(例えば、食べログAPI)でデータを要求します。  AndroidではJAVAからAPIを発行してデータを取得します。

nstammy507
質問者

お礼

早々ありがとうございます。 APIの仕様(?)について理解していないのですが、食べログAPIすごく参考になりました。 イメージは出来てるのですが、JAVAの関数(?)もわからずなので手探りでやっております。 ちょっと勉強しながらやってみます。 サンプルソースなんかあるサイトありましたら、是非教えてください。 ありがとうございました。

関連するQ&A

  • Androidアプリで外部から読み込んだ画像データ

    こんにちは Androidアプリを勉強しながら作成しています。 今までPHPとMySQLをやっていたのですが、JAVA初体験でわからない事が沢山あり専門書を見たりネットで検索したりしております。 今回の質問は外部(インターネット上)にある画像を端末に表示する方法がわからず質問してみました。 【例】 http://www.hogehoge.com/hoge.png 上記のhoge.pngをアプリ側の画面に表示させたい。 いろいろ検索して調べて見たのですが、素人なので専門用語に弱くここに来ました。 どのようにしたら表示出来るのか教えてください。 また、参考になるサイトありましたら、是非教えてください。 なにぶん初心者なのでよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Androidアプリについて-ファイルの外部読込方

    androidアプリ作成を勉強しています。 (別件も質問しています。) 外部ファイル(http://yahoo.xxx/xxx/xxx/msg.txt) http://yahoo.xxx/xxx/xxx/msg.txtの内容 こんにちは テスト表示です アプリから外部ファイルを読込して、内容を表示したいのですが、どのようになったらいいかわかりません。 いろいろ調べて見たのですが、専門用語の羅列で困惑して質問してみました。 なにぶん初心者なのでよろしくお願いたします。

    • ベストアンサー
    • Java
  • 外部DBアクセスするAndroidアプリについて

    Androidアプリで、外部DBに登録されているユーザを検索→一覧画面に表示し、一覧画面に表示された詳細ボタンから詳細画面へ遷移する仕組みを作りたいと思っています。 Androidから直接DBアクセスするためにはサーバ側でポートを解放しなければならず、セキュリティ上よろしくないので、サーバにPHPプログラムを置き、DBアクセスはPHPで行いたいと思っています。 しかし、検索まではいくものの、Androidへの結果の返し方がわかりません。 どなたか方法をご存じの方いらっしゃいますでしょうか。 また、そもそもこういった外部DBにある大量データを扱うアプリの場合、全てWebviewにしてしまうのが一般的なのでしょうか?なるべくならAndroidのコンポーネントを使った画面にしたいと思っているのですが。。

  • MysqlまたはPostgreSQLで、データをデータベースから読み取

    MysqlまたはPostgreSQLで、データをデータベースから読み取り、コピーして書き込み可能にするような操作がありましたら教えてください。 一例として、外部・内部結合で取得したデータをコピーして書き込み可能にするようなイメージです。 このようなことは実行可能でしょうか?また似たような操作が存在しますでしょうか? よろしくお願いします。

  • PHPで外部サーバーのデータベースにアクセスは可能でしょうか?

    PHPで外部サーバーのデータベースにアクセスは可能でしょうか? データ量が多すぎて複数のデータベースに分けております。 またサーバーも変える必要があるためサーバーも複数に分けております。 サーバー1にデータベース1 サーバー2にデータベース2 サーバー3にデータベース3 がある状態で、サーバー4からPHPプログラムでデータベースにアクセスして、サーバー4に設置してあるホームページにデータを表示するプログラムを作りたい。 このような事が出来るのでしょうか? PHPプログラムが置いてある同一サーバー上のデータベースへのアクセスは出来たのですが、外部サーバーへのアクセスの仕方が解りません。。。 サーバーはXrea、さくらインターネットを使用しています。 PHPとMySQLを使用。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 外部にあるMySQLのデータを取得したい。

    外部にあるMySQLのデータを取得したい。 VB2005を使用して、レンタルサーバー(Linux)にあるMySQLのデータを取得したいと考えています。 ただ、レンタルサーバ上のポートが閉じているため、ODBC接続などは出来ません。 VBからMySQLへ接続する何か良い方法があればご教授下さい。

  • アンドロイドアプリの開発環境

    アンドロイドアプリを開発しようと考えていますが 本屋さんで入門書を見たところ、様々な 環境で開発が可能との事がわかりました。 そこで質問ですが、やはりjava+sdkでの開発が 一般的だと思いますが、Google App Inventorを利用した方法や flashを使った開発などの方法とどういった点が違うのでしょうか? 自分の作りたいものとしては、管理するwordpressサイト内の データベース検索やページ投稿などの機能をつけた webアプリを作りたいと考えています。 開発環境ごとの利点やここが不便だったなどの 後経験談をお聞かせいただけたらうれしいです。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Androidアプリのデータ保存法

    Androidで取得した加速度、傾きなどを連続で記憶していくアプリを開発したいです。 getAccelX()等で取得したデータを時系列ごとに保存していくにはどのようにすればよいでしょうか?

  • Android端末から外部DB(MYSQL)接続

    アンドロイド端末よりさくらインターネットのレンタルサーバーへ外部接続し、MYSQLからデータを取得してアンドロイド端末で取得データを表示させたいのですが、参考となる書籍やサイトがあったら教えて下さい。 現在、さくらインターネットではスタンダードプランでサーバーを借りていまして、サーバー内でphpの処理でMYSQLからデータを取得してHTMLで表示する仕組みができているので、アンドロイド端末からこのPHPの処理を動かして取得したデータをアンドロイド端末で表示すればよいと考えているのですが、サイトや書籍を調べてもできません。 ※Android sdkは、Eclipse上で動作させており、エミュレータで実行しています。 参考にしたページは、次のようなものです。 http://blog.kabel.jp/?cid=20 →このページの「Android から外部SQLへアクセス」の部分の通りに設定しました。 http://archi.iza.ne.jp/blog/entry/691670/ →このページをベースに添付(名前はJdbcSample.javaのソースを作り、eclipse上で実行しました。 http://www.atmarkit.co.jp/fjava/javatips/069java006.html http://okwave.jp/qa/q5527506.html エミュレータで「hello world!」は表示できたので、基本的な環境の設定はできてると思っています。 実機で実現できれば一番よいのですが、まずはエミュレータで実現できればと考えています。 ヒントだけでもよいので、どうか私にご教授下さい。 以下は、実行したソースです。 import java.sql.Statement; public class JdbcSample { public static void main(String[] args) { Connection con = null; Statement stmt = null; ResultSet rset = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","root", "root"); →ここのlocalhostは10.0.2.2も試しましたが、ダメでした。 →ここのlocalhostと書かれた右側は3306以外は試していません。 →ここのmydatabaseは、mysql○○○.db.sakura.ne.jpを指定しました。 →ここの左側のrootはデータベース名を指定しました。 →右側のrootはデータベースのパスワードを指定しました。 stmt = con.createStatement(); rset = stmt.executeQuery("SELECT * FROM customerlist"); →ここは実在するテーブル名を指定しました。 while ( rset.next() ) { System.out.print(rset.getInt("id")); →このidや下記のnameやcompanynameは上記テーブル内の列名を指定しました。 System.out.print(","); System.out.print(rset.getString("name")); System.out.print(","); System.out.println(rset.getString("companyname")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { rset.close(); stmt.close(); con.close(); } catch ( SQLException e ){ e.printStackTrace(); } } } }

    • ベストアンサー
    • Java
  • Android アプリについて

    Android端末を使っているのですが、戻るボタンやホームボタンの部分にアプリを置く事ができる(その機能は有料)というアプリの名前を忘れてしまいました。Google検索などで調べてみたのですが全然見つかりません。どなたかご存知の方いらっしゃいましたら教えてください。お願い致します。

専門家に質問してみよう