こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

AndroidアプリからMySQLのデータ取得

こんにちは。
今、androidの勉強をしながらアプリを作成しています。
androidやjavaの知識レベルは、初心者レベルです。

タイトルにもあるように、AndroidアプリからMySQLのデータ取得方法がわかりません。
今現在、eclipse内のエミュレータではデータの取得と表示はできています。
しかしながら、実機でテストをすると、データが取れていません。

なにぶん初心者なので、どこを見れば良いか、何を設定すれば好いか、いきあたりばったりでテストしています。皆様のアドバイス宜しくお願いします。

【開発環境】
windowsXP
eclipse3.5
mysql5.1(ユーザー、IP、ポート、データベース、テーブルなどは設定済み)
jdbc5.1(構成パスにJDBCは追加済み)

【ソース一部抜粋】
public class Prof extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

setContentView(R.layout.prof);

TextView set_NameLabel = (TextView) findViewById(R.id.set_nameLabel);
TextView set_oldLabel = (TextView) findViewById(R.id.set_oldLabel);
TextView set_jobLabel = (TextView) findViewById(R.id.set_jobLabel);
TextView set_addLabel = (TextView) findViewById(R.id.set_addLabel);
TextView set_homeLabel = (TextView) findViewById(R.id.set_homeLabel);
TextView set_hobbyLabel = (TextView) findViewById(R.id.set_hobbyLabel);
TextView set_comentLabel = (TextView) findViewById(R.id.set_comentLabel);

try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/prof_db","test_01","test_pass");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM my_prof");
rs.next();

set_NameLabel.setText(rs.getString("prof_name"));
set_oldLabel.setText(rs.getString("prof_age"));
set_jobLabel.setText(rs.getString("prof_occupation"));
set_addLabel.setText(rs.getString("prof_address"));
set_homeLabel.setText(rs.getString("prof_home"));
set_hobbyLabel.setText(rs.getString("prof_hobby"));
set_comentLabel.setText(rs.getString("prof_comment"));

conn.close();
rs.close();
stmt.close();

} catch (ClassNotFoundException e){
e.printStackTrace();
} catch ( SQLException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}
}
}

何かしらのアドバイス、解決方法、参考HPなど、ご教授宜しくお願いします。

投稿日時 - 2011-06-15 17:21:40

QNo.6811575

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

接続するデータベースサーバーを指定すればいいのではないかとおもいます。

ここでは、開発環境の
mysql5.1(ユーザー、IP、ポート、データベース、テーブルなどは設定済み)
のIPとポートを設定してみてください。

投稿日時 - 2011-06-16 19:46:57

お礼

duronさん、回答ありがとうございます。
mysql5.1のIPの設定はここのHPを参考にして設定しました。
http://www.multiburst.net/sometime-php/2009/04/mysql-remote-connect-setting/

ポートはデフォルトで設定してある為、「3306」です。
windowsファイアウォールの例外設定もしてあります。

この設定でとりあえず、テストしてみましたが、出来ませんでした。
もう少し、テストしてみます。回答ありがとうございます。

投稿日時 - 2011-06-17 10:19:30

ANo.1

参考URL先の「エミュレータから、データベースサーバーに接続する場合の注意」に

Androidのエミュレータは、自身が動いているコンピュータのIPアドレスを10.0.2.2として扱います。

と書かれています。

ですので
conn = DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/prof_db","test_01","test_pass");
の部分を、実機で接続する場合の設定にすればよいのではないでしょうか?

参考URL:http://codezine.jp/article/detail/5598?p=2

投稿日時 - 2011-06-16 10:08:51

お礼

duronさん、回答ありがとうございます。
ここの参考URLは、私も拝見して、ここを参考にプログラムを作成しました。
「conn = DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/prof_db","test_01","test_pass");
の部分を、実機で接続する場合の設定にすればよいのではないでしょうか?」というのは、IPアドレスなどを実機で接続する設定にすれば良いのでしょうか?
その際、実機のIPアドレスなどはどうやって調べるのでしょうか?初心者の為、質問が正しいかも分からないのですが、参考HPなどがあれば宜しくお願いします。

投稿日時 - 2011-06-16 14:25:38

あなたにオススメの質問