• ベストアンサー

【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
  • 回答数5
  • ありがとう数5

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

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.5

class.forName>Class.forName string sql>String sql あれれっ。

earlgyreprince
質問者

お礼

fortranxpさん class.forNameとstring sqlはそのままでマイクロソフトのHPで 調べたらURLが違っていました・・・ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection con = DriverManager.getConnection ("jdbc:microsoft:sqlserver://192.168.100.103:1433?useUnicode=true&characterEncoding=Shift_JIS","ID","PW");にしたら解決しました!ほんとにありがとうございました☆

earlgyreprince
質問者

補足

class.forName→Class.forName string sql→String sqlであってました。 すみません。ありがとうござました♪

その他の回答 (4)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.4

訂正。try{}catch(){}を挿入。 <%= %>とは式タグと言います。 <%@ page contentType="text/html;charset=Shift_JIS" %> <HTML> <HEAD> <TITLE>一覧</TITLE> </HEAD> <BODY bgcolor="#ffffcc"> <CENTER> <%@page import="java.sql.*"%> <% try{ 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()){ %> <%=rs.getString("F1") %><BR> <%=rs.getString("F2") %><BR> <%=rs.getString("F3") %><BR> <%=rs.getString("F4") %><BR> <%=rs.getString("F5") %><BR> <%=rs.getString("F6") %><BR> <%=rs.getString("F7") %><BR> <% } stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } %> </CENTER> </BODY> </HTML>

earlgyreprince
質問者

お礼

やはりエラーがでてしまいます。 class.forNameの所です。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /Data/JSPsample.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: \org\apache\jsp\Data\JSPsample_jsp.java:53: <identifier> がありません。 class.forName("sun.jdbc.odbc.JbdcOdbcDriver"); ^ JSPファイル: /Data/JSPsample.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:53: '{' がありません。 class.forName("sun.jdbc.odbc.JbdcOdbcDriver"); ^ JSPファイル: /Data/JSPsample.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:58: 型の開始が不正です。 while (rs.next()){ ^ JSPファイル: /Data/JSPsample.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:79: <identifier> がありません。 stmt.close(); ^ JSPファイル: /Data/JSPsample.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:80: <identifier> がありません。 con.close(); ^ JSPファイル: /Data/JSPsample.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:81: 'catch' への 'try' がありません。 } catch (Exception e) { ^ 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:31: 'try' への 'catch' または 'finally' がありません。 try { ^ 生成されたサーブレットのエラーです: org\apache\jsp\Data\JSPsample_jsp.java:101: '}' がありません。 ^ エラー 8 個

earlgyreprince
質問者

補足

fortranxpさん ご丁寧なご回答ありがとうございます☆ 明日、試してみます!! できる限りは自分でやりたいとは思いますがまた質問があればどうぞ宜しくお願い致します♪

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.3

こうしてみれば。JSPなのでweb.xmlは不要です。 <%@ page contentType="text/html;charset=Shift_JIS" %> <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()){ %> <%=rs.getString("F1") %> <%=rs.getString("F2") %> <%=rs.getString("F3") %> <%=rs.getString("F4") %> <%=rs.getString("F5") %> <%=rs.getString("F6") %> <%=rs.getString("F7") %> <% } con.close(); %> </CENTER> </BODY> </HTML>

earlgyreprince
質問者

補足

ご回答ありがとうございます。 修正したのですがどうしても1つだけエラーが出てしまいます。 <%@ 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.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("Name","ID","PW"); 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> Class.forNameの部分でエラーがでます。 どうしてもここだけ分からないのでどの様に記述すればよいのか教えて下さい!お願いします。

回答No.2

#1です。 コンパイルエラーが出たんですから、 少しは自分で考えてみましょうよ。 それが「教えてクン」を脱する第一歩ですよ! なので、ヒントだけ。 ・「class」というclassは存在しません ・「out.print(rs.getString("F1"));」などの「out」はなんですか? ※これは先ほども書きました。 whileとかconはあってそうだけどな~・・・ この辺は「class」とかを直せば、消えるかも・・・

earlgyreprince
質問者

お礼

susumufireさん ありがとうございます! そうですね!自分で探さないと身につかないですもんね? 再度、チャレンジしてみます☆ ありがとうございました!

回答No.1

コンパイルエラーが出たのならば、 それをそっくりそのまま記述してください。 とりあえず、コンパイルエラーが書かれていないので補足要求ならびに憶測で回答です。 【補足要求】 ・ODBCDriverに対して、CLASSPATHは記述していますか? ・「out.print(rs.getString("F1"));」などの「out」はなんていうclassですか? 【憶測】 ・「class.forName」は「ClassNotFoundException」をスローします。 「try~catch」で囲みましょう ・SQL文の発行は「SQLException」をすろーします。 「try~catch」で囲みましょう ・Connection、Statement、ResultSetクラスをimportしていません。 import文を書きましょう

earlgyreprince
質問者

補足

2007-04-04 11:09:36 StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /F_Data/A_serch.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:52: <identifier> がありません。 class.forName("sun.jdbc.odbc.JbdcOdbcDriver"); ^ JSPファイル: /F_Data/A_serch.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:52: '{' がありません。 class.forName("sun.jdbc.odbc.JbdcOdbcDriver"); ^ JSPファイル: /F_Data/A_serch.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:57: 型の開始が不正です。 while (rs.next()){ ^ JSPファイル: /F_Data/A_serch.jsp の中の9行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:67: <identifier> がありません。 con.close(); ^ JSPファイル: /F_Data/A_serch.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:69: <identifier> がありません。 out.write("\r\n"); ^ JSPファイル: /F_Data/A_serch.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:70: <identifier> がありません。 out.write("</CENTER>\r\n"); ^ JSPファイル: /F_Data/A_serch.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:71: <identifier> がありません。 out.write("</BODY>\r\n"); ^ JSPファイル: /F_Data/A_serch.jsp の中の26行目でエラーが発生しました 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:72: <identifier> がありません。 out.write("</HTML>\r\n"); ^ 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:73: 'catch' への 'try' がありません。 } catch (Throwable t) { ^ 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:31: 'try' への 'catch' または 'finally' がありません。 try { ^ 生成されたサーブレットのエラーです: C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\wl_jsp\org\apache\jsp\F_005fData\A_005fserch_jsp.java:85: '}' がありません。 ^ エラー 11 個 おっしゃっていた「try~catch」の部分はエラーに出てるので分かります。

関連するQ&A

  • 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からMYSQLへの接続について

    はじめまして 初めて質問をさせていただきます。 qazxsw1と申します。 タイトルの通り、JSPからMYSQLに接続するプログラムなのですが、下記のようなエラーが出て、その後試行錯誤しましたがやはりうまくいきません。 java.sql.SQLException: Access denied for user 'mysql'@'localhost' (using password: YES) 参考にさせていただいたサイトは以下の通りです。 http://www.hellohiro.com/jspdb.htm mysql-connector-java-○.○-bin.jarファイルは[Tomcatのフォルダ]\shared\libにあります。 バージョンはTomcat4.1、MySQL Server4.1です。 ソースコードは以下の通りです。 データベース名、ユーザ名、パスワードは伏せてあります。 お手数ですが、詳しい方がいらっしゃいましたらよろしくお願いします。  <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.sql.*" %> <% Connection con = null; Statement stmt = null; try { // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // データベースへ接続 String url = "jdbc:mysql:///データベース名?useUnicode=true&characterEncoding=SJIS"; con = DriverManager.getConnection(url, "ユーザ名", "パスワード"); // ステートメントオブジェクトを生成 stmt = con.createStatement(); // 全ての行を検索するSQL文を作成 String sql = "SELECT * FROM kaiin_tbl"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); %> <html> <head> <title>JSPでDB接続</title> </head> <body> <table border="1"> <tr> <th>NO</th> <th>言語</th> <th>メッセージ</th> </tr> <% // 検索された行数分ループ while(rs.next()){ %> <tr> <td><%=rs.getInt("NO") %></td> <td><%=rs.getString("LANGUAGE") %></td> <td><%=rs.getString("MESSAGE") %></td> </tr> <% } // end while %> </table> </body> </html> <% } catch (Exception e) { out.println("<font color=red><h3>エラー!</h3></font>" + e); e.printStackTrace(); } finally { // データベースへの接続をクローズします try { if (stmt!=null) { stmt.close(); } if (con!=null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } } %>

  • JSPが表示できない

    サーブレットからJSPに表示させようとしているのですがJSPの中にJAVAソース を加えると表示できなく画面が真っ白になり、加えなければ表示できます。 原因がなぜなのかわからなく困惑中です。ソースは以下の通りです。 アドバイスお願いします。 <%@ page contentType="text/html;charset=Shift_JIS"                               import= "java.sql.*" %> <jsp:useBean id="Bean" class="Servlet"scope="session" /> <html> <head><title>表示画面</title></head> <body> // BeanファイルでデータをSQL文によって取り出しrs変数に格納し // getNameCDメソッドによってデータを取り出す。BeanファイルではSQL文 実行確認済み <% ResultSet rs = Bean.getNamaCD(); %> <%  while(rs.next()){ out.println(rs.getString(1)); // 名前のコードを取り出し表示させる。 } %> </body> </html>

  • 【JSPがブラウザで表示されません】

    こんばんわ。 教えて頂きたいのですが、以下のjspを記述しましたが番号・名前・電話番号の項目表示のみで肝心のテーブル内容が表示されません。 何が原因かわからず困っています。 教えて下さい!お願い致します。 <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@page import="java.sql.*"%> <%! // サーブレットのinitメソッドに相当 public void jspInit() { try { // JDBCドライバをロード Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } %> <html> <head><title>テーブル_JSP版</title></head> <body> <P>データベース一覧</P> <table border='1'><tr><th>番号</th><th>名前</th><th>電話番号</th></tr> <% // データベースへのアクセス開始 Connection con = null; Statement stmt = null; ResultSet rs = null; try { // データベースに接続するConnectionオブジェクトの取得 con = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW"); // データベース操作を行うためのStatementオブジェクトの取得 stmt = con.createStatement(); // SQL()を実行して、結果を得る rs = stmt.executeQuery( "SELECT 番号, 名前, 電話番号 FROM Table"); // 得られた結果をレコードごとに表示 while (rs.next()) { %> <tr> <%-- レコードのCUSTOMER_NUMフィールドを表示 --%> <td><%= rs.getString("番号")%></td> <%-- レコードのNAMEフィールドを表示 --%> <td><%= rs.getString("名前")%></td> <%-- レコードのPHONEフィールドを表示 --%> <td><%= rs.getString("電話番号")%></td> </tr> <% } } catch (Exception e) { e.printStackTrace(); } finally { // データベースとの接続をクローズ try { rs.close(); } catch (Exception e) {} try { stmt.close(); } catch (Exception e) {} try { con.close(); } catch (Exception e) {} } %> </table> </body> </html>

    • ベストアンサー
    • Java
  • JSPで複数のSQL実行について教えて下さい

    JSPで複数のSQLを実行したいと思い、作ってみましたがページが全く表示されません。 SQL分が違う気がするのですがどこが悪いのか分りません。 ご教示下さいませ。ソースのせます。 <%@page contentType="text/html; charset=Windows-31J"%> <%@page import="java.sql.*"%> <%! // サーブレットのinitメソッドに相当 public void jspInit() { try { // JDBCドライバをロード Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } %> <HTML> <HEAD> <TITLE>結果</TITLE></HEAD> <BODY> <CENTER> <B>結果</B> <TABLE border="3"> <TR> <TD>年齢</TD> <TD>氏名</TD> </TR> <% // データベースへのアクセス開始 Connection con = null; Statement stmt = null; ResultSet rs = null; try { // データベースに接続するConnectionオブジェクトの取得 con = DriverManager.getConnection("jdbc:sqlserver:ServerName;DatabaseName=Name","ID","PW"); // データベース操作を行うためのStatementオブジェクトの取得 stmt = con.createStatement(); if (request.getParameter("buttonA") != null) { // テキストボックスの値を取得 String paramA = request.getParameter("NamA"); // SQL()を実行して、結果を得る rs = stmt.executeQuery("SELECT * FROM TABLE_A where 年齢='"+ paramA +"'"); rs = stmt.executeQuery("SELECT * FROM TABLE_B where 年齢='"+ paramA +"'"); } if (request.getParameter("buttonB") != null) { // テキストボックスの値を取得 String param = request.getParameter("NamB"); // getParameterの値を文字列へ変換 String paramB = new String(param.getBytes("ISO-8859-1"),"Shift_JIS"); rs = stmt.executeQuery("SELECT * FROM TABLE_A where 氏名 like '%"+ paramB +"%'"); rs = stmt.executeQuery("SELECT * FROM TABLE_B where 氏名 like '%"+ paramB +"%'"); } // 得られた結果をレコードごとに表示 while (rs.next()){ String year = rs.getString("年齢"); String name = rs.getString("氏名"); %> <TR> <FORM method="post" action="Next.jsp"> <TD><%= year %></TD> <TD><%= name %></TD> </form> </TD> </TR> <% } } catch (Exception e) { e.printStackTrace(); // エラー表示プログラム out.write(e.getMessage()); } finally { // データベースとの接続をクローズ try { rs.close(); } catch (Exception e) {} try { stmt.close(); } catch (Exception e) {} try { con.close(); } catch (Exception e) {} } %> </TABLE> </BODY> </HTML>

    • ベストアンサー
    • Java
  • JSPのIF文を教えて下さい

    こんばんわ。 JSPにてIF文を使ったDBテーブル表示のWEBを作成したのですが クローズの行でエラーが表示されてしまいます。 エラー内容は「型の開始が不正」ですというものです。 知識不足で恐縮ですがご教示願います。 <%@page contentType="text/html; charset=Windows-31J"%> <%@page import="java.sql.*"%> <%! // サーブレットのinitメソッドに相当 public void jspInit() { try { // JDBCドライバをロード Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } %> <HTML> <HEAD> <TITLE>一覧</TITLE></HEAD> <CENTER> <B>一覧</B> <TABLE border="3" BORDERCOLOR="#9999ff"> <TR> <TD>年齢</TD> <TD>電話番号</TD> </TR> String year = request.getParameter("年齢"); String namber = request.getParameter("電話番号"); <% // データベースへのアクセス開始 Connection con = null; Statement stmt = null; ResultSet rs = null; try { // データベースに接続するConnectionオブジェクトの取得 con = DriverManager.getConnection("jdbc:sqlserver://sqlserverName;DatabaseName=NAME","ID","PW"); // データベース操作を行うためのStatementオブジェクトの取得 stmt = con.createStatement(); if(year.length() >= 0){ %> // SQL()を実行して、結果を得る rs = stmt.executeQuery("SELECT * FROM テーブルA where 年齢='"+ paramA +"'"); rs = stmt.executeQuery("SELECT * FROM テーブルB where 年齢='"+ paramA +"'"); <% } else if(namber.length() >= 0){ %> rs = stmt.executeQuery("SELECT * FROM テーブルA where 電話番号='"+ paramC +"'"); rs = stmt.executeQuery("SELECT * FROM テーブルB where 電話番号='"+ paramC +"'"); <% } %> // 得られた結果をレコードごとに表示 while (rs.next()){ String aa = rs.getString("名前"); String bb = rs.getString("住所"); %> <TR bgcolor="#ccffcc"> <FORM method="post" action="Next.jsp"> <input type="hidden" name="num" value="<%= rs.getString("ID")%>"> <%-- 年齢フィールドの表示 --%> <TD><%= aa %></TD> <%-- 電話番号フィールドの表示 --%> <TD><%= bb %></TD> <TD align="center"> </form> </TD> </TR> <% } } catch (Exception e) { e.printStackTrace(); // エラー表示プログラム out.write(e.getMessage()); } finally { // データベースとの接続をクローズ try { rs.close(); } catch (Exception e) {} try { stmt.close(); } catch (Exception e) {} try { con.close(); } catch (Exception e) {} } %> </TABLE> </BODY> </HTML>

    • ベストアンサー
    • Java
  • コンパイルエラー

    現在勉強の為、JSPでショッピングカートを作成中です。 その中でDBからデータを読み込み商品一覧を出すプログラムを作っていますが、コンパイルエラーが出てしまいうまくできません。 ソースは <%@ page import="java.sql.*" %> <% Connection con = null; ResultSet rs = null; Class.forName("oracle.jdbc.OracleDriver"); con = DriverManager.getConnection("jdbc:oracle:thin//localhost:1521/bit21"); Statement stmt = con.createStatement(); // 実行して結果セットを取得する rs = stmt.executeQuery("SELECT * FROM BOOKMST"); // 結果セットの分だけループして表示する while (rs.next()) { %> <%= rs.getstring("SALEDATE") %> <table> <tr align="center"><td>定価:</TD><TD><%= rs.getstring("PRICE") %></TD><TD>円</td></tr> </td></tr></TABLE> <% } con.close(); %> でエラー内容は C:\tomcat-5.0.28\work\Catalina\localhost\bookshop\org\apache\jsp\lineup_jsp.java :84: シンボルを解決できません。 シンボル: メソッド getstring (java.lang.String) 場所 : java.sql.ResultSet の インタフェース out.print( rs.getstring("PRICE") ); ^ です。 どこが間違っているのかわからず困っています。 どなたかご教授お願い致します。

    • ベストアンサー
    • Java
  • JSP データベースへの数回の接続

     いつもお世話になっております。  今私は、JSPからデータベース(Access 2003)へデータを追加・検索をしようとしています。  データベースにデータを追加するため、データベースを接続する記述及び追加をする記述を書き、データを追加していきます。  その下の記述にHTMLが入り、HTML文の後に今度はデータベースに検索をかけてデータを取得し、その記述の下に更にHTML文を記述し取り込むといった流れでプログラムを書いております。 ■HTML文 ■データベース追加文 ■HTML文 ■データベース検索文 ■HTML(データベースからの取得データもいれる)  しかし、データベースへは、追加はされているのですが、検索の記述の部分がまったく読まれておらず、ジャンプされており、どうしても検索ができません。  JSPからデータベースへの接続は初めてですので、わからないことも多く、もしかしたらJSPでは数回のデータベースへの接続はできないのかな?と思いながら、最終的にこちらで伺い参りました。  プログラムが長いため、HTML文を除き、データベースの部分だけ下に記述させていただきます。その記述の中でのこの変数はどこからもってきているのかな?と思われる方もいらっしゃるかと思いますが、しっかり値が入っておりますので心配ございません。 <%@ page import="java.sql.ResultSet"%> <%@ page import="java.util.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="java.sql.SQLException" %> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.Date" %> <%@ page import="java.util.Calendar " %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con =null; con = DriverManager.getConnection("jdbc:odbc:QUIZDB"); Statement sql; sql = con.createStatement(); Calendar cal = Calendar.getInstance(); Integer nen=cal.get(Calendar.YEAR); Integer tu=cal.get(Calendar.MONTH)+ 1; Integer hi=cal.get(Calendar.DATE); String userName=(String)session.getAttribute("userName"); Integer userId=(Integer)session.getAttribute("userId"); sql.executeUpdate( "INSERT INTO Seiseki(氏名,ID,ジャンル,正解数,クイズ日付)"+"values('"+userName+"','"+userId+"','"+aa+"','"+seikaiten+"','"+nen+"/"+tu+"/"+hi+"')"); sql.close(); %> <■HTML文がはいります> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection db =null; db = DriverManager.getConnection("jdbc:odbc:QUIZDB"); String sq = "select * from Seiseki where(氏名= '"+userName+"') and (ID = '"+userId+"')"; Statement st; st = db.createStatement(); ResultSet res; res = st.executeQuery(sq); if(res.next()){    String Name=res.getString(1);    String Id=(String)res.getString(2);    Integer id =Integer.parseInt(Id); String jyanru=res.getString(3); String seikai=res.getString(4); int kazu =Integer.parseInt(seikai); String hizu=res.getString(5); } st.close(); %> <■HTML文が入り、変数を入れて表示させます> 以上となります。どんな小さなことでも構いませんので、お手数ですがアドバイス宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • データベースへ接続してからのデータ追加方法

    掲示板を作成しているのですが、DAOクラスの使いかたがいまいちわかりません。 public ArrayList<textbeen> findAll(){ //スレッド一覧を保持するリスト ArrayList<textbeen> list = new ArrayList<textbeen>(); Connection con = null; try{ //データベースに接続 con = createConnection(); //データベースにSQL文を送信 String sql = "select * from TEXT"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ String name = rs.getString("KB_NAME"); String title = rs.getString("KB_TITLE"); String mail = rs.getString("KB_MAIL"); String text = rs.getString("KB_TEXT"); String pass = rs.getString("KB_TITLE_PASS"); textbeen thread = new textbeen(name, title, mail, text, pass); //TO(Threadオブジェクト)を、保持するリストに追加 list.add(thread); } //スレッド一覧を返す。 return list; }catch(Exception e){ e.printStackTrace(); return null; }finally{ //データベースからの切断 closeConnection(con); } } public void create(textbeen emp){ Connection con = null; try{ //データベースに接続 con = createConnection(); //データベースにSQL文を送信 String sql = "insert into TEXT values(?, ?, ?, ? ,?)"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, emp.getName()); stmt.setString(2, emp.getTitle()); stmt.setString(3, emp.getMail()); stmt.setString(4, emp.getText()); stmt.setString(5, emp.getPassword()); stmt.executeUpdate(); }catch(Exception e){ e.printStackTrace(); }finally{ //データベースからの切断 closeConnection(con); } } 以上のようにTextDAOクラスを作り、MVCモデルに従ってサーブレットからJSPにて追加用のページを表示したいのですが、どうすればDAOクラスのメソッドを使えるのかがわかりません。DAOクラスは入門書に書いてあったのを名前だけ変えたりして使っております。 すでにtextbeen.javaファイルにてsetName()やgetName()などは定義しております。 宜しく御願い致します。

    • ベストアンサー
    • Java
  • JSPからデータベースへのアクセス

    質問させて頂きます。 下のサイトを参考にJSPからDBにアクセスする練習をしてるのですが、 思うように動きません。 http://www.fk.urban.ne.jp/home/kishida/kouza/shop/shop.html 同じようにDBにはAccessを利用。ODBCも設定を行いました。 tomcatの設定は他のJSPやサーブレットが動くので問題ないと 考えています。 サンプルをそのままコピーして、実行するとエラーがでます。 HTTPステータス500 The server encountered an internal error () that prevented it from fulfilling this request. org.apache.jasper.JasperException: JSPのクラスをロードできません org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:598) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:147) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) JSPソース <%@page contentType="text/html; charset=Shift_JIS"%> <html> <head><title>商品一覧</title></head> <body> <%@page import="java.sql.*"%> <h1>商品一覧</h1> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:sampleshop"); Statement stmt = conn.createStatement(); String sql = "select * from t_shohin order by shohin_code"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ out.print(rs.getString("shohin_name")); out.print(" - "); out.print(rs.getInt("price") + "円"); out.println("<br>"); } conn.close(); %> </body> </html> ご回答よろしくお願いします。

専門家に質問してみよう