![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
タイトルのことをしようとすると、「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ランキング
-
Transact-SQLでストアードプロ...
-
ブラウザ上に表示されたデータ...
-
SQL/Loaderでの年月日時分秒の...
-
ODBCリンクの際にACCESSでは読...
-
TeXの索引作成に関して
-
Accessのマクロでモジュールを...
-
SSIS 変数の値をSQL実行タスク...
-
callで順に実行されるプロシー...
-
ドメインの取得日を変更する方法
-
wordで文字の上に線を引きたい...
-
医は仁術ですか算術ですか
-
オラクルのデフォルトセッション数
-
ストアドプロシジャからストア...
-
エクセルVBAの次のコードの...
-
Access VBAで行ラベルが定義さ...
-
PL/SQLのエラーについて
-
エクセルVBAでUserFormを起動し...
-
プロシージャの全検索?
-
ワードで日付を自動更新したい
-
自動連番でカラムを更新したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Plusの終了はquit?exit?
-
Transact-SQLでストアードプロ...
-
sql文の中での時間取得
-
sqlについてです。 サブクエリ...
-
oracle 学習できるツール
-
SQLPlusで 選手の誕生日を2017...
-
CPU使用率の高いセッション特定...
-
ブラウザ上に表示されたデータ...
-
sqlite3_stmt はどこに?
-
Access VBAで行ラベルが定義さ...
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
Statement ignored というエラー
-
キャッシュを使わずにSELECTを...
-
ODBCリンクの際にACCESSでは読...
-
今日の日付が入った行のデータ...
-
エクセルの日付に時差を加算 #V...
-
VBA プロシージャの名前の取得
-
sqlplusでヘッダーが付かない
-
PL/SQLカーソルの2重FORループ...
おすすめ情報