• ベストアンサー

DBから取得した結果をtext内へ表示したいのですが。

getuji表に列が「月、日、天気」と3つある場合に String qry1 = "SELECT * FROM getuji WHERE 月 = '4'"; ResultSet rs = st.executeQuery ( qry1 ); とgetuji表の月が4の行から「月、日、天気」データを取り出し、「text1に月、text2に日、text3に曜日」と取得したデータを表示させたいのですが、 DBから取得したデータをどうしたらテキスト内へ表示させることができるのかわかりません。 どなたかわかる方がいらっしゃいましたら教えていただけないでしょうか?

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

  • ベストアンサー
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

おつかれさまですか? 「月、日、天気」の情報から、「曜日」を導き出すのは、難しいかと思いますよ。 ResultSetからデータを取り出すなら、 ----------------------------------------------------------------------     while (rs.next()) {       tsuki = rs.getInt("月");  // データ型をNUMBERと想定       hi = rs.getInt("日");   // データ型をNUMBERと想定       tenki = rs.getInt("天気"); // データ型をNUMBERと想定     } ---------------------------------------------------------------------- と言うような感じですかね。 NUMBER以外のデータ型についても、 APIリファレンスのResultSetを読めばわかると思います。 ちょっと、質問の内容が意味不明なところがあるので、 回答する人に読める内容で、質問をお願いしたいです。

totojima
質問者

お礼

申し訳ないです。わかりにくい説明の上に間違っているなんて・・・ データ型はintegerでした。これも書いていないといけないことですよね・・・ String qry1 = "SELECT * FROM getuji WHERE 月 = '4'"; ResultSet rs = st.executeQuery ( qry1 ); while(rs.next()){ String t1 = rs.getString("月"); String t2 = rs.getString("日"); String t3 = rs.getString("天気"); text1.setText( String.valueOf( t1 ) ); text2.setText( String.valueOf( t2 ) ); text3.setText( String.valueOf( t3 ) ); } 教えていただいた形でデータを表示することができました。 どうもありがとうございました。 次回質問させていただく時は、もっとわかりやすいように質問させていただきます。すいませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • resultsetによるDBへのレコード追加

    できるかできないかだけでも教えてください。 お願いいたします。 ACCESSへレコードの追加を Resultsetによってしたいと思います。 環境1 WIN2000(SP2) Forte3.0 JDK1.4 ACCESS2000  では、以下のプログラムが一部(rs.moveToCurrentRow())を除き動きます。 環境2(ハードウェアの状態よりバージョンがあげられません) win98(SP2?) Forte2 JDK1.3 ACCESS2000  では、   rs.insertRow()  で例外が発生します。 ODBCドライバのバージョンは両環境とも.6019です。 JDBCドライバのバージョンがこの原因と思われますが、 JDBCドライバあげる方法もわかりませんし、手の打ちようがありません。 環境2で insertRow の動作の仕方など ご存知の方ぜひ教えてください。 ソース try{ String drv = "sun.jdbc.odbc.JdbcOdbcDriver"; String url = "jdbc:odbc:データベース名"; String usr = ""; String pw = ""; Connection con; Statement st; //接続 Class.forName(drv); con = DriverManager.getConnection(url, usr, pw); st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,                 ResultSet.CONCUR_UPDATABLE);   String qry="SELECT * FROM T_table"; ResultSet rs = st.executeQuery(qry); rs.moveToInsertRow(); //データ入力 rs.updateString(1,"データ");   //省略 //insertRowが動かない rs.insertRow(); rs.moveToCurrentRow(); con.commit(); }catch(Exception e){ // System.exit(0); } }

    • ベストアンサー
    • Java
  • サーブレットでデータベースの件数を取得する方法がわからなくて困っています

    サーブレットでデータベースの件数を取得する方法がわからなくて困っています。 dborder_tranテーブルの DB_ordernumber フィールドの件数を取得したいです。 以下の方法では COUNTというフィールドはないので取得できないです。 しかし、while(rs.next()) にカウンタを付けて取得するのも効率が悪いように思います。 何か良い方法はありませんか? qry = "SELECT COUNT(*) FROM dborder_tran"; rs = st.executeQuery(qry); Integer ordernumber = Integer.valueOf((rs.getInt("DB_ordernumber") + 1));

    • ベストアンサー
    • Java
  • WebSphere/DB2/ResultSet close/Exception

    WebSphereを使って、Listenerで取得したデータソースを利用していますが、 String sql1 = "SELECT A1 FROM TEST1"; String sql2 = "SELECT B2 FROM TEST2 WHERE B1 = ?"; Connection conn = datasource.getConnection(); PreparedStatement ps1 = conn.preparedStatement(sql1); ResultSet rs1 = ps1.executeQuery(); while(rs1.next()){ PreparedStatement ps2 = conn.preparedStatement(sql2); ps2.setString(1,rs1.getString("A1")); ResultSet rs2 = ps2.executeQuery(); ps2.close(); } このロジックで、ps2をクローズすると、ps1で取得したResultSet rs1がクローズされるというExceptionが発生してしまいます。 (ループして戻ったときにrs1.next()でexceptionが起こる) なにか対処方法があるかご存知の方いらっしゃいましたら、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Javaでデータに登録する度にIDを振る

    下記のコードはSQLにテーブルを作成し、データを登録するコードですが コードを少し足すことで、ついでにIDを自動的に割り振る方法はあるのでしょうか? import java.sql.*; public class Sample1 { public static void main(String args[]) { try{ //接続の準備 String url = "jdbc:derby:cardb;create=true"; String usr = ""; String pw = ""; //データベースへの接続 Connection cn = DriverManager.getConnection(url, usr, pw); //問い合わせの準備 DatabaseMetaData dm = cn.getMetaData(); ResultSet tb = dm.getTables(null, null, "車表", null); Statement st = cn.createStatement(); String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))"; String[] qry2 = {"INSERT INTO 車表 VALUES ('伊藤', '男性')", "INSERT INTO 車表 VALUES ('佐藤', '女性')", "INSERT INTO 車表 VALUES ('山田', '男性')"}; String qry3 = "SELECT * FROM 車表"; if(!tb.next()){ st.executeUpdate(qry1); for(int i=0; i<qry2.length; i++){ st.executeUpdate(qry2[i]); } } //問い合わせ ResultSet rs = st.executeQuery(qry3); //データの取得 ResultSetMetaData rm = rs.getMetaData(); int cnum = rm.getColumnCount(); while(rs.next()){ for(int i=1; i<=cnum; i++){ System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " "); } System.out.println(""); } //接続のクローズ rs.close(); st.close(); cn.close(); } catch(Exception e){ e.printStackTrace(); } } 000001 伊藤 男性 000002 佐藤 女性 000003 山田 男性

    • ベストアンサー
    • Java
  • DBへ問合せた後の処理について。

    btn2.setEnabled(false); btn3.setEnabled(false); btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ String drv = "org.postgresql.Driver"; String url = "jdbc:postgresql:postgres"; String usr = "postgres"; Class.forName(drv); Connection cn = DriverManager.getConnection(url, usr); Statement st = cn.createStatement(); String qry1 = "SELECT * FROM getuji WHERE 年度 = '1984';"; ResultSet rs = st.executeQuery ( qry1 ); while(rs.next()){ int t = rs.getInt("年度"); } st.close(); cn.close(); } catch(Exception f){f.printStackTrace();} if (t != 0 ){ btn2.setEnabled(true); } else{ btn3.setEnabled(true); } } }); btn1を押すとDBへ問合せ、データが有る場合はbtn2が使えるようになり、データがない場合はbtn3が使えるようになる、という風にしたいのですが、コンパイル時に シンボルがありません。 変数 t if (t != 0 ){ とエラーた出てしまいます。何かよい方法はないでしょうか?上記以外のやり方でもけっこうですので教えてください。

    • ベストアンサー
    • Java
  • データベースから取得した値をセレクトメニューに入れたいのですが・・

    Java(servlet)からMySQLに接続し、ブラウザ画面ではJavaScriptを使ったプログラムを作っています(初心者なので、本を見ながらですが)。 ResultSet rs1=st1.executeQuery("select hiro from hirotable"); While(rs1.next()){ String hirodata=rs1.getString(1); out.println("<form>");  out.println("<select>"); out.println("<option>+hirodata+</option>"); データベースから取得した値をセレクトメニュー内にすべて表示させたいのですが、このようにするとデータの数だけセレクトメニューができてしまいます。配列の考え方が今ひとつピンとこないのですが、これと関係しているのでしょうか?どなたか教えていただけないでしょうか? よろしくお願い致します。  

    • ベストアンサー
    • Java
  • Javaとエクセルを連携させる

    Sample1.java  ドライバ名にMicrosoft Excel Driver;createと指定しましたが 実行時に、 java.sql.SQLException: No suitable driver found for Microsoft Excel Driver;creat e=true at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at Sample1.main(Sample1.java:14) ドライバが適切でないというエラーが出てしまいました。 エクセルのDBはSQL文では扱えないのでしょうか? コードは以下の通りです。 import java.sql.*; public class Sample1 { public static void main(String args[]) { try{ //接続の準備 String url = "Microsoft Excel Driver;create=true"; String usr = ""; String pw = ""; //データベースへの接続 Connection cn = DriverManager.getConnection(url, usr, pw); //問い合わせの準備 DatabaseMetaData dm = cn.getMetaData(); ResultSet tb = dm.getTables(null, null, "車表", null); Statement st = cn.createStatement(); String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))"; String[] qry2 = {"INSERT INTO 車表 VALUES (2, '乗用車')", "INSERT INTO 車表 VALUES (3, 'オープンカー')", "INSERT INTO 車表 VALUES (4, 'トラック')"}; String qry3 = "SELECT * FROM 車表"; if(!tb.next()){ st.executeUpdate(qry1); for(int i=0; i<qry2.length; i++){ st.executeUpdate(qry2[i]); } } //問い合わせ ResultSet rs = st.executeQuery(qry3); //データの取得 ResultSetMetaData rm = rs.getMetaData(); int cnum = rm.getColumnCount(); while(rs.next()){ for(int i=1; i<=cnum; i++){ System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " "); } System.out.println(""); } //接続のクローズ rs.close(); st.close(); cn.close(); } catch(Exception e){ e.printStackTrace(); } } }

  • jspでの表示の仕方

    下記のような、jspへの受け渡しができずにいます。 ご回答お願いします。 Servletは、 String query = "SELECT * FROM test"; ResultSet resultset = statement.executeQuery( query ); request.setAttribute("obj",resultset); ServletContext context = getServletContext(); RequestDispatcher rd = context.getRequestDispatcher("/kekka.jsp"); rd.forward(request,respons); とした時、jsp側で、 <%@ page contentType="text/html;charset=Shift_JIS" %> <%@ page import = "java.sql.*" %> <%! ResultSet rs = (ResultSet)request.getAttribute("obj"); %> <% While(rs.next()){String hinmei = rs.getString("hinmei");} %> <html> <head> <title>JSP</title> </head> <body> <table border="0"> <tr> <td><%=hinmei%></td> </tr> </table> </body> </html> と、したいのですが、白い画面になりjspの表示ができません。 やはり、ResultSetオブジェクトのAttributeはできないのでしょうか? それとも、jspの構文に問題があるのでしょうか? Vector、Stringは、この形のやり方で表示できたのですが・・・。 間違いを指摘してください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • データ数をカウントしたいのですが

    JAVAのJDBCを使いMySqlを操作しデータ数を取得するプログラムです。自分なりに考えたプログラムは Connection con = null; String sql = "select count(*) from テーブル名"; // コネクションを作成する。 con = DriverManager.getConnection(url, user, pass); Statement st = con.createStatement(); // SQLを実行する。 ResultSet rs = st.executeQuery(sql); String count = rs.getString("count(*)"); 実行した結果上手く出来ないのですが、この部分での間違いはありますか?

    • ベストアンサー
    • Java
  • JSPのDB接続

    いつもお世話になっております。 只今、JSPでoracleに接続しデータを表示するプログラムを作っていますが、 コンパイルエラーが出てしまい、いろいろと原因を探ってはみたものの うまくいきませんでした。ソースは以下の通りです。 <HTML> <HEAD> </HEAD> <BODY> <%@page import="java.sql.*" %> <CENTER> <% ResultSet rs = null; Class.forName("oracle.jdbc.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/BIT21"); Statement stmt = con.createStatement(); // 実行して結果セットを取得する rs = stmt.executeQuery("SELECT * FROM BOOKMST"); // 結果セットの分だけループして表示する while (rs.next()) { %> <BR> <%= rs.getString("PICTURE") %><BR> <%= rs.getString("SALEDATE") %><BR> <%= rs.getString("PRICE") %><br> <%= rs.getString("ISBNCODE") %><BR> <BR> <% } con.close(); %> </CENTER> </BODY> </HTML> エラーは javax.servlet.ServletException: コールの引数が無効です。 と出てしまいます。 原因がわかる方どうかご教授願います。

    • ベストアンサー
    • Java