トラブル発生です・・・解決法を宜しくお願いしますm(_ _)m
「Java+MySQL+Tomcatで始めるWebアプリケーション構築入門」のテキスト:P406〜P415「JSPとJDBC」でCDのサンプルコードを使用したところ、更新処理と追加処理ができません。
何が悪いのでしょうか?教えて下さい。。。
環境は以下の通りです。
トラブルの内容は以下の通りです。
「Java+MySQL+Tomcatで始めるWebアプリケーション構築入門」のテキスト:P406〜P415「JSPとJDBC」でCDのサンプルコードを使用したところ、更新処理と追加処理ができません。
何が悪いのでしょうか?教えて下さい。。。
環境は以下の通りです。
OS:WindowsXP HomeEdition
ブラウザ:IE7
Java、MySQL、Tomcatは全てCDの中にあるものを使用しています。
トラブルの内容は以下の通りです。
[user_name]を変更し更新ボタンを押すと新規で追加されます。
[password][real_name][priv]の1つ以上を変更し更新ボタンを押すと「ユーザが重複しています」とエラーメッセージが表示されます。
新規に作成し追加ボタンを押すと「更新に失敗しました」とエラーメッセージが表示されます。
投稿:ミニミニ[mini98]/2008年 01月 18日 17時 09分
/更新:2008年 01月 18日 17時 09分
RE:JSPとJDBCでのトラブル
by 竹形 誠司[takegata]
竹形です。こんにちは。
すみません。この問題はCD-ROMに収録したファイルが間違っていたことが原因です。
下記の正誤表のP.413の部分を参照してください。
http://jamy.to/web/book/hoi12.txt
よろしくお願いします。
すみません。この問題はCD-ROMに収録したファイルが間違っていたことが原因です。
下記の正誤表のP.413の部分を参照してください。
http://jamy.to/web/book/hoi12.txt
よろしくお願いします。
投稿:竹形 誠司[takegata]/2008年 01月 18日 18時 37分
/更新:2008年 01月 18日 19時 46分
こんにちは。お返事ありがとうございます。
「BBS/DbcpTest/UserEdit.jsp」の修正箇所は参考にさせて頂きます。
ただ、今回のトラブルは「BBS/DbTest/・・・」のファイル上でのエラーとなります。
お手数をおかけして申し訳ありませんが、宜しくお願いしますm(_ _)m
「BBS/DbcpTest/UserEdit.jsp」の修正箇所は参考にさせて頂きます。
ただ、今回のトラブルは「BBS/DbTest/・・・」のファイル上でのエラーとなります。
お手数をおかけして申し訳ありませんが、宜しくお願いしますm(_ _)m
投稿:ミニミニ[mini98]/2008年 01月 19日 15時 24分
/更新:2008年 01月 19日 15時 37分
あぁ、すみません。勘違いしました。私の環境では正しく動いているようです。
ご質問に書かれているような現象は「新規」と「更新」の処理が逆になっているような感じですね。
UserUpdate.jspでは、次の部分(31行目)でstrIdが "新規" の場合に新規の処理、それ以外の場合に更新の処理をするようになっています。
ご質問に書かれているような現象は「新規」と「更新」の処理が逆になっているような感じですね。
UserUpdate.jspでは、次の部分(31行目)でstrIdが "新規" の場合に新規の処理、それ以外の場合に更新の処理をするようになっています。
}else if(!strId.equals("新規")){ //挿入
この行の"!" が抜けていると、ご質問のような現象が発生するのですが、CD−ROMのコードはそのままテストされているのですよね?このあたりをもう一度確認してみていただけますか?
投稿:竹形 誠司[takegata]/2008年 01月 19日 22時 18分
/更新:2008年 01月 19日 22時 18分
1日おいたらちゃんと動きました・・・(?)
何回も試してみてからのコメントだったんですが、本当に申し訳ないです。
お手数をおかけしてすみませんでしたm(_ _)m
CD-ROMのコード「BBS/DbTest/UserUpdate.jsp」を見ると、StatementとPreparedStatementが混在してるのですが、両方あっても問題はないのですか?
テキストP413の方では、PreparedStatementの方しか書いてないのですが・・・
何回も試してみてからのコメントだったんですが、本当に申し訳ないです。
お手数をおかけしてすみませんでしたm(_ _)m
CD-ROMのコード「BBS/DbTest/UserUpdate.jsp」を見ると、StatementとPreparedStatementが混在してるのですが、両方あっても問題はないのですか?
テキストP413の方では、PreparedStatementの方しか書いてないのですが・・・
投稿:ミニミニ[mini98]/2008年 01月 21日 10時 23分
/更新:2008年 01月 21日 17時 09分
ふーむ、そうですか。現象が再現できないというのは気持ちが悪いですね。また何か分かったら教えてください。
Statement と PreparedStatementはどちらもSQL文を実行するためのクラスで、状況によってどちらか一方を選びます。本書では、単純なSQL文の場合にStatementを使い、同じ形のSQL文を繰り返し実行したり、ユーザーが入力した文字列をSQL文に組み込む場合などはPreparedStatementを使っています。
PreparedStatementのsetStringメソッドを使えば、ダブルクオーテーションやセミコロンなどの文字が自動的にエスケープシーケンスに変換されるので、SQLインジェクションなどの心配がありません。
Statement と PreparedStatementはどちらもSQL文を実行するためのクラスで、状況によってどちらか一方を選びます。本書では、単純なSQL文の場合にStatementを使い、同じ形のSQL文を繰り返し実行したり、ユーザーが入力した文字列をSQL文に組み込む場合などはPreparedStatementを使っています。
PreparedStatementのsetStringメソッドを使えば、ダブルクオーテーションやセミコロンなどの文字が自動的にエスケープシーケンスに変換されるので、SQLインジェクションなどの心配がありません。
投稿:竹形 誠司[takegata]/2008年 01月 21日 10時 52分
/更新:2008年 01月 21日 11時 11分
返信が遅くなってしまいすみません・・・(>_<)
Statement と PreparedStatementについてですが、「状況によってどちらか一方」ということは1つのファイル内に記述する場合、両方を同時に使用することもあるということでしょうか?
Statement と PreparedStatementについてですが、「状況によってどちらか一方」ということは1つのファイル内に記述する場合、両方を同時に使用することもあるということでしょうか?
投稿:ミニミニ[mini98]/2008年 01月 25日 10時 38分
/更新:2008年 01月 25日 10時 38分
両方を同時に使用しても問題ありません。ただ、その場合は当然別々のオブジェクトになりますから、別々のSQL文を実行することになります。形が異なる複数のSQL文を実行する際に、StatementとPreparedStatementの両方を使う場合があります。
投稿:竹形 誠司[takegata]/2008年 01月 25日 11時 19分
/更新:2008年 01月 25日 11時 20分
理解できました。(^^)/ ありがとうございます。
投稿:ミニミニ[mini98]/2008年 01月 25日 17時 51分
/更新:2008年 01月 25日 17時 51分