質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

3524閲覧

Android端末でDBに接続

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2015/12/08 10:02

###前提・実現したいこと
Android端末でDBに接続し、受け取ったデータをspinnerフォームに

埋め込むというアプリを作成しています。

btn1を押すとspinner1で選択しているアイテムでDBにあるデータを検索し

結果をspinner2に入れたいです。

自分では以下ソースコードまでしか考えられず、

皆さまの知恵をお借りしたいです。

作成者は初心者です。宜しくお願い致します。

###発生している問題・エラーメッセージ
DBドライバは読み込めており、DBにも接続確認は下記ソースコードで確認がとれています。

###ソースコード

java

1 2package com.example.testdbhori; 3 4 5 6import java.sql.DriverManager; 7import java.sql.ResultSet; 8import android.view.View; 9import android.view.View.OnClickListener; 10import android.widget.AdapterView; 11import android.widget.ArrayAdapter; 12import android.widget.Button; 13import android.widget.Spinner; 14import android.widget.TextView; 15import android.app.Activity; 16import android.os.AsyncTask; 17import android.os.Bundle; 18import com.mysql.jdbc.Connection; 19import com.mysql.jdbc.Statement; 20 21 22 23public class MainActivity extends Activity implements OnClickListener{ 24 Spinner spinner1 = null; 25 Spinner spinner2 = null; 26 TextView textView2 = null; 27 TextView textView3 = null; 28 Button btn1 = null; 29 String sagasu; 30 String rsText; 31 int iRui; 32 long rstart; 33 long rstop; 34 35 protected void onCreate(Bundle savedInstanceState) { 36 super.onCreate(savedInstanceState); 37 setContentView(R.layout.activity_main); 38 39 spinner1 = (Spinner) findViewById(R.id.spinner1); //Spinnerコントロール取得 40 spinner2 = (Spinner) findViewById(R.id.spinner2); 41 btn1 = (Button)findViewById(R.id.btn1); 42 btn1.setOnClickListener(this); 43 44 45 String[] items = { //選択肢追加部分 46 "1", 47 "3", 48 }; 49 ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items); 50 spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 51 spinner1.setAdapter(spinnerAdapter); 52 spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 53 @Override 54 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 55 sagasu = (String) spinner1.getSelectedItem(); 56 iRui = Integer.valueOf(sagasu).intValue(); //DBがintで代入しているためintに変換 57 } 58 59 @Override 60 public void onNothingSelected(AdapterView<?> parent) { 61 62 } 63 }); 64 65 66 67 } 68 69 70 public void onClick(View v) { 71 if(v.getId() == R.id.btn1){ 72 TaskDbQuery task = new TaskDbQuery(MainActivity.this); 73 task.execute(iRui); 74 } 75 } 76 77 78 79 80} //Mainの終わり 81 82 83class TaskDbQuery extends AsyncTask<Integer, Void, String>{ //DB接続クラス 84 Activity activity = null; 85 86 public TaskDbQuery(Activity act){ 87 activity = act; 88 89 } 90 protected String doInBackground(Integer... kensaku) { 91 92 String rsText=""; 93 94 try{ 95 System.out.println("try内入った"); 96 Class.forName("com.mysql.jdbc.Driver"); //mysqlのjdbc Driverのダウンロード 97 98 Connection conn=(Connection)DriverManager.getConnection("jdbc:mysql://****/DB名", "user", "pass"); //DBに接続 99 System.out.println("DB接続完了"); 100 Statement stmt=(Statement)conn.createStatement(); //ステートメント作成 101 String sql="select bl from 1sei where no='" + kensaku+ "'"; //検索 102 ResultSet rs=stmt.executeQuery(sql); 103 104 while(rs.next()){ 105 rsText =rs.getString(1)+"\n"; 106 } 107 rs.close(); 108 stmt.close(); 109 }catch(Exception e){ 110 System.out.println("catch内入った"); 111 rsText=e.getMessage(); 112 } 113 return rsText; 114 115 } 116 117 protected void onPostExecute(String result){ 118 //ここで戻り値返す…? 119 } 120 } 121 122 123 124 125 126 127activity_main.xml 128 129<?xml version="1.0"?> 130 131<LinearLayout 132tools:context="com.example.testdb.MainActivity" 133android:paddingTop="@dimen/activity_vertical_margin" 134android:paddingRight="@dimen/activity_horizontal_margin" 135android:paddingLeft="@dimen/activity_horizontal_margin" 136android:paddingBottom="@dimen/activity_vertical_margin" 137android:orientation="vertical" 138android:layout_height="match_parent" 139android:layout_width="match_parent" 140android:id="@+id/LinearLayout1" 141xmlns:tools="http://schemas.android.com/tools" 142xmlns:android="http://schemas.android.com/apk/res/android"> 143 144 145 146 <TextView 147 android:id="@+id/textView1" 148 android:layout_width="wrap_content" 149 android:layout_height="wrap_content" 150 android:text="どちら塁側ですか?" > 151 </TextView> 152 153 154 <Spinner android:id="@+id/spinner1" 155 android:layout_width="wrap_content" 156 android:layout_height="wrap_content" 157 > 158 159 </Spinner> 160 161 <Button 162 android:id="@+id/btn1" 163 android:layout_width="wrap_content" 164 android:layout_height="wrap_content" 165 android:text="検索" /> 166 167 <Spinner 168 android:id="@+id/spinner2" 169 android:layout_width="match_parent" 170 android:layout_height="wrap_content" /> 171 172</LinearLayout> 173 174 175

###補足情報(言語/FW/ツール等のバージョンなど)
実行実機 nexus7 4.3

mysql-connectorは5.1.10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shintaro

2015/12/10 04:47

発生している問題はなんですか?
guest

回答1

0

とりあえず動かせるようにというだけでしたら
イベントリスナを定義すれば実現できます。
動作確認等は全くしていませんので、イメージだけ伝わればと。

// TaskDbQueryクラスに下記を追記 class TaskDbQuery extends AsyncTask<Integer, Void, String>{ private InsertSuccessListener insertSuccessListener; protected void onPostExecute(String result){ if (this.insertSuccessListener != null) { this.insertSuccessListener.onSuccess(result); } } public void setInsertSuccessListener(InsertSuccessListener listener) { this.insertSuccessListener = listener; } public interface InsertSuccessListener { public void onSuccess(String result); } } // MainActivityクラスのonClickメソッドにに下記を追記 public class MainActivity extends Activity implements OnClickListener{ // spinner2用のArrayAdapterを宣言しておく ArrayAdapter<String> spinner2Adapter; protected void onCreate(Bundle savedInstanceState) { // ... // spinner2へAdapterをセット spinner2Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items) spinner2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner2.setAdapter(spinner2Adapter); // ... } public void onClick(View v) { if(v.getId() == R.id.btn1){ TaskDbQuery task = new TaskDbQuery(MainActivity.this); task.setInsertSuccessListener(new InsertSuccessListener() { @Override public onSuccess(String result) { spinner2Adapter.add(result); spinner2Adapter.notifyDataSetChanged(); } }); task.execute(iRui); } } }

投稿2015/12/11 07:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問