タイトルのことをしようとすると、「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" />
No.3ベストアンサー
- 回答日時:
>新たに作った方のjspを直にアドレス入力してみると、先のプログラムとまったく同じ「java.lang.NullPointerException」と出ました。
>ということはデータがjspファイルに送られていないということでしょうか?
ということは、恐らく、パラメーターが取得できないために、
下記メソッドの引数がnullだからなのでしょう。
>public String toUnicode(String s)
>throws java.io.UnsupportedEncodingException {
>return (new String(s.getBytes("8859_1"), "JISAutoDetect"));
>}
というか、提示されたことくらいやってみてください。
そうすれば、すぐに解るはずです・・・。(^^;)
No.2
- 回答日時:
例外が発生している行が表示されているはずです。
このとき指している行は、
JSPがサーブレットに変換されたソースファイルの行です。
これから、該当するJSPの行を修正しましょう。
これが良く解らないなら、
System.out.println(con);
System.out.println(stmt);
とかして、どのオブジェクトがNullなのか見てみましょう。
Eclipceとか使っているなら、ツールの機能でも良いですから、
とにかく値を確認してみましょう。(^^;)
お二方の回答ありがとうございます。
ちなみにACCESS(私はACCESS2003を使っています)で作ったデータベースをブラウザ上に表示することには成功しています。
データを追加するには、HTMLファイル(追加する情報の入力)とjspファイル(追加した後のDBの表示)の2つ出来ますよね?
似たようなプログラムを作ってみたのですが、新たに作ったほうはちゃんと動作しました。
新たに作った方のjspを直にアドレス入力してみると、先のプログラムとまったく同じ「java.lang.NullPointerException」と出ました。
ということはデータがjspファイルに送られていないということでしょうか?
エラーの内容を書いておきます。
type:Exception report
message:Internal Server Error
description:The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
以下例外の場所をズラーっと書いていますが、多すぎるので割愛します
No.1
- 回答日時:
con、stmt等が正しくオブジェクトを生成できていないか、すでになくなってしまっているオブジェクト等に対して処理しようとしているのかも。
正しくデータベースにコネクトできているのかな?
できていないまま、データベースにアクセスしていませんか?
下記を参考にして例外処理組んで確認してみては。
参考URL:http://www.atmarkit.co.jp/fjava/rensai/jdbc03/jd …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL*Plusの終了はquit?exit?
-
Transact-SQLでストアードプロ...
-
Accessのマクロでモジュールを...
-
VBA プロシージャの名前の取得
-
キャッシュを使わずにSELECTを...
-
Access VBAで行ラベルが定義さ...
-
callで順に実行されるプロシー...
-
Accessでグローバル変数を宣言...
-
今日の日付が入った行のデータ...
-
エクセルVBAでUserFormを起動し...
-
PL/SQLでSPOOLさせたいのですが...
-
WHERE句の実行順序
-
ODBCリンクの際にACCESSでは読...
-
PL/SQLカーソルの2重FORループ...
-
Like文の速度について教えてく...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
権限で「委任」「専決」とあり...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
SQLサーバで和暦から西暦に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Plusの終了はquit?exit?
-
Transact-SQLでストアードプロ...
-
CPU使用率の高いセッション特定...
-
sqlについてです。 サブクエリ...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
Accessの数値から時間に変換す...
-
ストアドプロシジャからストア...
-
VBA プロシージャの名前の取得
-
Statement ignored というエラー
-
sqlplusでヘッダーが付かない
-
全角空白のTRIMができない...
-
PL/SQLカーソルの2重FORループ...
-
キャッシュを使わずにSELECTを...
-
今日の日付が入った行のデータ...
-
ODBCリンクの際にACCESSでは読...
-
エクセル 日付による並べ替え...
-
【Excel VBA】 WorksheetやRa...
-
SQLサーバで和暦から西暦に変換...
おすすめ情報