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();
}
}
}
}