• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSP データベースへの数回の接続)

JSPデータベース接続での検索ができません。アドバイスをお願いします。

このQ&Aのポイント
  • JSPからデータベース(Access 2003)へのデータ追加と検索をしようとしていますが、検索の部分が正常に動作しません。
  • データベースへはデータの追加はできますが、検索の記述が正しく読まれず、検索ができません。
  • JSPからデータベースへの接続が初めてで、不慣れのために問題が発生している可能性があります。アドバイスをお願いします。

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

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

ためしに、 sql.close(); の下に、 con.close(); を追加してみて下さい。 あと、以下のようにtry~catch文を使えば、自分一人でも何とか出来るようになるかと思われます。 try { // ここに、SQLの実行などに関する記述を追加。 }catch(Exception e){ e.printStackTrace(); // エラーが起こった時などに、ログがはかれる。 } 今使用されている書籍の目次や索引などに、「アクション」とか「include」、「forward」などの記述がなかったら、もう何冊か必要かなあと。

参考URL:
http://www.hellohiro.com/jspdb.htm
aabbccddzz
質問者

お礼

ご回答ありがとうございます。 あなた様のおかげで、問題が解決いたしました。 ずばり、あなた様のご回答通りでした。 ただ、JSPのクラスを再度つくりなおしてから、上記の記述を足して 実行しみましたら、しっかり二度データベースへアクセスされていました。本当にありがとうございます。とても助かりました。 今後とも、アドバイス等よろしくお願い申し上げます。

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

その他の回答 (2)

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

念のため、    <■HTML文が入り、変数を入れて表示させます> に含まれるJSPの部分(式等)を知らせてもらえますか。 -------------------------- たか

aabbccddzz
質問者

お礼

補足を書かず申し訳ありませんでした。 上記の方のアドバイスをもとに、一度試してみたところ問題解決いたしました。親切に聞いてくださりありがとうございます。 あなた様の、知らせてもらえますか、の文からは、とても協力的な方で親切な方だと感じました。 なにぶん私は未熟者ですので、今後もアドバイス等をしてくださると助かります。何卒宜しくお願い申し上げます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

JSPはあくまでもViewテクノロジなので、JSPからこんなことをしないほうがよい(個々のクライアントアクセスのたびにDBコネクションを初期化するなんて!)。もっとちゃんとしたWeb開発の本を読むか、またはちゃんとした会社でちゃんとした訓練を受けてから、まともな構造のWebアプリケーションを書いてください。

aabbccddzz
質問者

お礼

アドバイスありがとうございます。 JSPの参考書を読んでおりましたら、JSPでデータベースへアクセスしておりましたので、私のプログラム上便利だと思い記述しておりました。 私は学生で、まだ全然知識がありません。しかしこのような記述をしたことは大変なさけないことと感じております。 大変失礼いたしました。 しかし、どんな意見、アドバイスでも今の私のためになりますので、あなた様のアドバイスも感謝しております。 ありがとうございました。

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

関連するQ&A

  • 【SQLServer接続のJSPの記述を教えて下さい!】

    いつもありがとうござます。 今回、SQLServerのテーブルを使用したjspを作成しているのですが MS ACCESSしか使用した事がなく設定が分からなく困っています。 ソースはこんな感じです。 <%@ page contentType="text/html;charset=Windows-31J" %> <HTML> <HEAD> <TITLE>一覧</TITLE> </HEAD> <BODY bgcolor="#ffffcc"> <CENTER> <%@page import="java.sql.*"%> <% class.forName("sun.jdbc.odbc.JbdcOdbcDriver"); Connection con = DriverManager.getConnection(test,no,nono); string sql = "select * from T_Transfer"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()){ out.print(rs.getString("F1")); out.print(rs.getString("F2")); out.print(rs.getString("F3")); out.print(rs.getString("F4")); out.print(rs.getString("F5")); out.print(rs.getString("F6")); out.print(rs.getString("F7")); } con.close(); %> </CENTER> </BODY> </HTML> コンパイルできないとのエラーがでます。 xmlは記述が分からないので一切触っていません。 上記ソースの場合のxmlの記述もご教授下さい。 宜しくお願い致します!

    • ベストアンサー
    • Java
  • データベースへの接続で困ってます

    JSPを関連させてcom.mysql.jdbc.Driverというドライバでデータベースに接続したいのですが、エラーが出てしまってどうすればいいかお手上げ状態になっています。プログラムを貼るので、何かおかしいとこがありましたら教えてもらいたいです。よろしくお願いします。 /*プログラム*/ <%@ page import="java.sql.*" %> <html> <head> <title>データを表示する</title> </head> <body> <% //データベースに接続する Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/sqldb?useUnicode=true&characterEncoding=SJIS"; String user = "matsuzaki"; String password = "matsuzaki"; Connection conn = DriverManager.getConnection(url, user, password); //データを取得する Statement st = conn.createStatement(); String sql = "SELECT * FROM cd"; //実行するSQL ResultSet rs = st.executeQuery(sql); //データを全件表示する out.println("<table border=1>"); while(rs.next()){ out.println("<tr>"); out.println("<td>" + rs.getInt("name") + "</td>"); out.println("<td>" + rs.getString("artist") + "</td>"); out.println("<td>" + rs.getInt("price") + "</td>"); out.println("</tr>"); } out.println("</table>"); //データベース接続を閉じる conn.close(); %> </body> </html>

    • ベストアンサー
    • MySQL
  • 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
  • JSP表示エラー?

    たびたびすみません リクエストから取ってきたコメントどうしても表示ができないです。 環境は tomcat5.5 postgresql8.2 データベースエンコーディングはEUC_JP JSPファイルもEUC形式で保存してます。 コメント欄に日本語を入力するとエラーが出てしまいます。 JSPファイル1 <%@ page contentType="text/html; charset=euc-jp"pageEncoding="euc-jp" %> <%@ page import="java.sql.*,atmarkit.MyDBAccess" %> <% // 内容: データベースにアクセスする MyDBAccess db = new MyDBAccess(); db.open(); ResultSet rs = db.getResultSet("SELECT * FROM SHAINLIST order by member_id"); String tableL = "<table border=1>"; tableL += "<tr bgcolor=\"000080\"><td><font color=\"white\">ID</font></td>" + "<td nowrap><font color=\"white\">名前</font></td>" + "<td colspan=2><font color=\"white\">出欠</font></td>"; while(rs.next()) { int id = rs.getInt("member_id"); String name = rs.getString("name"); String age = rs.getString("age"); int state = rs.getInt("attendance"); String comment = rs.getString("comment"); if(comment != null){ comment = new String(comment.getBytes("8859_1"),"EUC_JP"); } 以下~略 JSPファイル2 <%@ page contentType="text/html; charset=euc-jp"pageEncoding="euc-jp" %> <%@ page import="java.sql.*, atmarkit.MyDBAccess" %> <% // 内容: データベースにアクセスする // 入力された引数を取得する String comment = request.getParameter("comment"); String attendance = request.getParameter("attendance"); String member_id = request.getParameter("member_id"); // MyDBAccess のインスタンスを生成する MyDBAccess db = new MyDBAccess(); // データベースへのアクセス db.open(); // データベース更新用のSQL文を作成 String sql = "update shainlist set comment='" + comment + "', attendance=" + attendance + " where member_id=" + member_id; // SQL文を実行 db.execute(sql); くわしい方教えていただけないでしょうか よろしくお願いします。

    • ベストアンサー
    • Java
  • >続きJSPの表示問題

    <%@ page contentType="text/html; charset=euc-jp" %> <%@ page import="java.sql.*,atmarkit.MyDBAccess" %> ~略 int id = rs.getInt("member_id"); String name = rs.getString("name"); String age = rs.getString("age"); int state = rs.getInt("attendance"); String comment = rs.getString("comment"); if(comment != null){ comment = new String(comment.getBytes("ISO8859_1"),"EUC_JP"); } 画面でコメント欄に文字がいれて、うまく表示できないときがあります。具体的いうと「あ」いれて、エラーでます。 しかし「い」をいれたら 登録ボタン押して、表示ができました。 詳しい方いたら 教えてください。

  • データベースからゼロが持って来れない

    Java初心者です。(SQLも初心者ですが…) Javaからデータベースの値をResultSetクラスのgetStringメソッドで 持って来ようと思ったのですが、持ってこれなかった。 調べたところ、値が0の項目だったのですが(これはidがゼロということで正しい) getStringで持ってきた値を見たところ、空白でした。 (空白なのかnullなのかはよく分かりません) 環境: OS:Windows7 DB:MySQL 5.1.57-community Community Server (GPL) 開発環境:Eclipse3.7 JDBCドライバ:mysql-connector-java-5.1.17-bin.jar SQL文: create table entry(id char(3),provider char(50),url char(255),blogid char(20),account char(20),password char(20)); ※blogidのところに0が入ります。 insert into entry values ('002','goo','http://blog.goo.ne.jp/xmlrpc.php','0','実際のアカウントIDが入る','実際のパスワードが入る'); Java: Connection users = SQL.getConnection(); Statement state = users.createStatement(); ResultSet result = state.executeQuery("select * from entry"); String id = result.getString("id"); String provider = result.getString("provider"); String url = result.getString("url"); String blogid = result.getString("blogid"); String account = result.getString("account"); String password = result.getString("password"); ※System.out.printlnで確認すると、何も入ってない。 そこで質問ですが、 1.値が0だけ持って来れない(0以外の数値なら持ってこれた)原因は何でしょうか? 2.また、対処方法としては何が考えられるのでしょうか? すみませんが、よろしくお願いします。

  • java データベース接続

    javaの勉強していまして、質問があります。よろしくお願いします。 javaでデータベースの接続ができなくて迷っております。ずっとネットで調べてもダメでした。 ネットで調べたとおりにやっても、 例外発生:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver このようなエラーがでます。 eclipseを使ってます。windows7 練習にアクセスにつなごうと思ってます。 事前にデータソース(ODBC)の登録はしました。 ドライバーとかインストールするものなのでしょうか? package sample; import java.sql.Connection; import java.sql.DriverManager; public class Hello { public static void main(String args[]) { try { //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //各設定 String url = "jdbc:odbc:SampleDB030"; String user = ""; String pass = ""; //データベースに接続 Connection con = DriverManager.getConnection(url,user,pass); System.out.println("接続成功"); //データベースを切断 con.close(); } catch (Exception e) { System.out.println("例外発生:" + e ); } } }

    • ベストアンサー
    • Java
  • JSPからMysqlへの接続

    タイトルどおり、以下のようなコードでMysqlデータベースに接続しようとしました。 <%@ page contentType="text/html; charset=Shift_JIS" import="java.sql.*" %> <html> <head> <title>データを表示する</title> </head> <body> <% //データベース設定 String sv = "localhost"; //サーバ名 String db = "test"; //データベース名 String user = "feifei"; //ユーザ名 String pass = "feifei"; //パスワード String encode = "EUC_JP"; //文字コード //データベースに接続する Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql://" + sv + "/" + db + "?user=" + user + "&password=" + pass + "&useUnicode=true&characterEncoding=" + encode; Connection conn = DriverManager.getConnection(url); //データを取得する Statement st = conn.createStatement(); String sql = "SELECT * FROM table1"; //実行するSQL ResultSet rs = st.executeQuery(sql); //データを全件表示する out.println("<table border=0>"); while(rs.next()){ out.println("<tr>"); out.println("<td>" + rs.getInt("id") + "</td>"); out.println("<td>" + rs.getString("name") + "</td>"); out.println("<td>" + rs.getInt("point") + "</td>"); out.println("</tr>"); } out.println("</table>"); //データベース接続を閉じる conn.close(); %> </body> </html> しかし、なぜかわかりませんが、表示した内容のうち日本語はすべて[?]と文字化けしてしまいます。 ちゃんとディレクティブで「charset=Shift_JIS」と指定しているのになぞです。 どうか教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • ブラウザ上に表示されたデータベースに追加

    タイトルのことをしようとすると、「java.lang.NullPointerException」というエラーが出ますが、これを解消するにはどうすればよいのでしょうか? そのエラーがでるページのソースを上げておきます。 <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.sql.*" %> <%! //toUnicodeメソッドの定義 public String toUnicode(String s) throws java.io.UnsupportedEncodingException { return (new String(s.getBytes("8859_1"), "JISAutoDetect")); } %> <% //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //データベースへ接続 String jdbcUrl = "jdbc:odbc:AnsSheet"; String user = "root"; String password = "progressive"; Connection con = DriverManager.getConnection(jdbcUrl,user,password); //SQL実行 Statement stmt = con.createStatement (); String sql = "INSERT INTO AnsSheet (問題, a, b, c, d, e, f) VALUES("; sql = sql + "'" + toUnicode(request.getParameter("問題")) + "',"; sql = sql + "'" + toUnicode(request.getParameter("a")) + "',"; sql = sql + "'" + toUnicode(request.getParameter("b")) + "',"; sql = sql + "'" + toUnicode(request.getParameter("c")) + "',"; sql = sql + "'" + toUnicode(request.getParameter("d")) + "',"; sql = sql + "'" + toUnicode(request.getParameter("e")) + "',"; sql = sql + toUnicode(request.getParameter("f")) + ")"; int cnt = stmt.executeUpdate(sql); //接続解除 stmt.close(); con.close(); %> <jsp:forward page="keepAnsSheet.jsp" />

  • データベースをランダムで読み込む

    [j2SE] Swingでアプリケーションを作っています。 問題集ソフトを作っており、データベースはAccessで作りました。 これを30問分構築しています。 画面のボタンをクリックする度に次の問題をランダムで表示したいのですが、記述が全く分からず困ってしまいました。 下記が現時点でボタンをクリックした時に設定してあるプログラムです。 //データベースに接続する(JDBC->ODBC) try { Connection myCon = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); myCon = DriverManager.getConnection("jdbc:odbc:mondai"); Statement mySt = myCon.createStatement(); //データベースからデータを取得する。(SQLのSELECT文) ResultSet myRs = mySt.executeQuery("SELECT * FROM PERSONAL_DATE"); long id = myRs.getLong("ID"); String mon = myRs.getString("問題"); mondai.setText(mon); String senA = myRs.getString("選択支A"); sentaku1.setText(senA); String senB = myRs.getString("選択支B"); sentaku2.setText(senB); String senC = myRs.getString("選択支C"); sentaku3.setText(senC); String senD = myRs.getString("選択支D"); sentaku4.setText(senD); } catch (Exception ex) { }

    • ベストアンサー
    • Java
この木の名前は?
このQ&Aのポイント
  • この木はヒバの仲間のようです
  • この木はヒノキの仲間のようです
  • この木はヒバとヒノキのどちらかでしょう
回答を見る

専門家に質問してみよう