いつもお世話になっております。
今私は、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文が入り、変数を入れて表示させます>
以上となります。どんな小さなことでも構いませんので、お手数ですがアドバイス宜しくお願い申し上げます。
No.3ベストアンサー
- 回答日時:
ためしに、
sql.close();
の下に、
con.close();
を追加してみて下さい。
あと、以下のようにtry~catch文を使えば、自分一人でも何とか出来るようになるかと思われます。
try {
// ここに、SQLの実行などに関する記述を追加。
}catch(Exception e){
e.printStackTrace(); // エラーが起こった時などに、ログがはかれる。
}
今使用されている書籍の目次や索引などに、「アクション」とか「include」、「forward」などの記述がなかったら、もう何冊か必要かなあと。
参考URL:http://www.hellohiro.com/jspdb.htm
ご回答ありがとうございます。
あなた様のおかげで、問題が解決いたしました。
ずばり、あなた様のご回答通りでした。
ただ、JSPのクラスを再度つくりなおしてから、上記の記述を足して
実行しみましたら、しっかり二度データベースへアクセスされていました。本当にありがとうございます。とても助かりました。
今後とも、アドバイス等よろしくお願い申し上げます。
No.2
- 回答日時:
念のため、
<■HTML文が入り、変数を入れて表示させます>
に含まれるJSPの部分(式等)を知らせてもらえますか。
--------------------------
たか
補足を書かず申し訳ありませんでした。
上記の方のアドバイスをもとに、一度試してみたところ問題解決いたしました。親切に聞いてくださりありがとうございます。
あなた様の、知らせてもらえますか、の文からは、とても協力的な方で親切な方だと感じました。
なにぶん私は未熟者ですので、今後もアドバイス等をしてくださると助かります。何卒宜しくお願い申し上げます。
ありがとうございました。
No.1
- 回答日時:
JSPはあくまでもViewテクノロジなので、JSPからこんなことをしないほうがよい(個々のクライアントアクセスのたびにDBコネクションを初期化するなんて!)。
もっとちゃんとしたWeb開発の本を読むか、またはちゃんとした会社でちゃんとした訓練を受けてから、まともな構造のWebアプリケーションを書いてください。アドバイスありがとうございます。
JSPの参考書を読んでおりましたら、JSPでデータベースへアクセスしておりましたので、私のプログラム上便利だと思い記述しておりました。
私は学生で、まだ全然知識がありません。しかしこのような記述をしたことは大変なさけないことと感じております。
大変失礼いたしました。
しかし、どんな意見、アドバイスでも今の私のためになりますので、あなた様のアドバイスも感謝しております。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
プログラミングの問題です。大...
-
JAの支部?地域の農協のカード...
-
Processingでマウスクリックで...
-
JSFタグのfタグとは
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
-
次のhtml・cssでspan内の文字を...
-
Jupyter notebookですわかりま...
-
Eclipse 動的プロジェクトで404...
-
下記問題の答えが"D"になる意味...
-
改行含むテキストの表示の仕方
-
JaneStyleのスレッドが見れなく...
-
キー入力について
-
マイクラでPythonのプログラミ...
-
jdk17.06のインストーラーが起...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET DataReaderが開かれている
-
Formのデータが欠落することがある
-
DBNULLについて
-
JavaScriptとACCESSデータベー...
-
dbからデータをとりだす際、sql...
-
C言語からデータベースにアクセス
-
struts 2つの選択肢(selec...
-
「XML over HTTP」「非同期HTTP...
-
Column名を変えた時のUpdate文...
-
JSP データベースへの数回の接続
-
三菱GOTの画面切り替えについて
-
腕時計の時報をならないように...
-
htmlで<form>~</form>を並べて...
-
画面遷移を行わずに同一ページ...
-
プログラミングで例えばゲーム...
-
ボタンが活性化の場合とは、ボ...
-
フォーム上で押されたボタンに...
-
ActiveWorkbook.Pathの一つ下の...
-
リクエストに応じたselectedの...
-
フロントエンドフレームワーク...
おすすめ情報