いつもお世話になっております。
今私は、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
list の空は [] ってあわらすのに
-
「main メソッドを持つクラスが...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
-
次のhtml・cssでspan内の文字を...
-
Jupyter notebookですわかりま...
-
Eclipse 動的プロジェクトで404...
-
下記問題の答えが"D"になる意味...
-
改行含むテキストの表示の仕方
-
JaneStyleのスレッドが見れなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET DataReaderが開かれている
-
Formのデータが欠落することがある
-
DBNULLについて
-
「XML over HTTP」「非同期HTTP...
-
dbからデータをとりだす際、sql...
-
JavaScriptとACCESSデータベー...
-
ruby on railsでDataBaseのデー...
-
struts 2つの選択肢(selec...
-
C言語からデータベースにアクセス
-
これはXSS?
-
SqlServerのトランザクションに...
-
JSP データベースへの数回の接続
-
login,logoutのできるページ
-
腕時計の時報をならないように...
-
ボタンが活性化の場合とは、ボ...
-
リクエストに応じたselectedの...
-
三菱GOTの画面切り替えについて
-
フォーム上で押されたボタンに...
-
「<c:forEach タグが終了し...
-
webアプリを作ってます。エラー...
おすすめ情報