竹形様
はじめましてタタと申します。
Java+MySQL+Tomcatで始めるサーバアプリケーション構築入門を購入させていただきました。
メールでも質問させていただきましたが、掲示板を見たところこの情報がなかったのでこちらにも記載させてもらいます。
添付のCDに含まれるJDBCの「InsertTest.java」を実行すると下記のようなエラーになってしまいます。
―ファイルの内容―
――――――――――――――――――――――――――――――――――――――――――――――――
import java.sql.*;
class
InsertTest{
public static void main(String[] args){
Connection conn =null;
Statement stmt =null;
try {
String strName = args[0];
Class.forName("com.mysql.jdbc.Driver");
String strConn="jdbc:mysql://localhost/jamyto"
+"?user=Mulder&password=TrustNo1"
+"&useUnicode=true&characterEncoding=cp932";
conn =DriverManager.getConnection(strConn);
stmt = conn.createStatement();
String strSql="INSERT INTO author(name) values('"+strName+"')";
int result= stmt.executeUpdate(strSql);
System.out.println(result + "件のレコードを追加しました");
}catch (Exception e) {
e.printStackTrace ();
}finally{
try{stmt.close();}catch(SQLException e){e.printStackTrace();}
try{conn.close();}catch(SQLException e){e.printStackTrace();}
}
}
}
――――――――――――――――――――――――――――――――――――――――――――――――
―エラー内容―
c:\jamyto\JDBC>java
InsertTest
java.lang.ArrayIndexOutOfBoundsException: 0
at InsertTest.main(InsertTest.java:7)
Exception in thread "main" java.lang.NullPointerException
at InsertTest.main(InsertTest.java:20)
これは何か設定が足りないのでしょうか?配列のエラーということですが、String
strName = args[0];ってところが問題なんでしょうか?
お時間があるときで結構です。原因をご教授願えませんでしょうか?
何卒よろしくお願いします。
はじめましてタタと申します。
Java+MySQL+Tomcatで始めるサーバアプリケーション構築入門を購入させていただきました。
メールでも質問させていただきましたが、掲示板を見たところこの情報がなかったのでこちらにも記載させてもらいます。
添付のCDに含まれるJDBCの「InsertTest.java」を実行すると下記のようなエラーになってしまいます。
―ファイルの内容―
――――――――――――――――――――――――――――――――――――――――――――――――
import java.sql.*;
class
InsertTest{
public static void main(String[] args){
Connection conn =null;
Statement stmt =null;
try {
String strName = args[0];
Class.forName("com.mysql.jdbc.Driver");
String strConn="jdbc:mysql://localhost/jamyto"
+"?user=Mulder&password=TrustNo1"
+"&useUnicode=true&characterEncoding=cp932";
conn =DriverManager.getConnection(strConn);
stmt = conn.createStatement();
String strSql="INSERT INTO author(name) values('"+strName+"')";
int result= stmt.executeUpdate(strSql);
System.out.println(result + "件のレコードを追加しました");
}catch (Exception e) {
e.printStackTrace ();
}finally{
try{stmt.close();}catch(SQLException e){e.printStackTrace();}
try{conn.close();}catch(SQLException e){e.printStackTrace();}
}
}
}
――――――――――――――――――――――――――――――――――――――――――――――――
―エラー内容―
c:\jamyto\JDBC>java
InsertTest
java.lang.ArrayIndexOutOfBoundsException: 0
at InsertTest.main(InsertTest.java:7)
Exception in thread "main" java.lang.NullPointerException
at InsertTest.main(InsertTest.java:20)
これは何か設定が足りないのでしょうか?配列のエラーということですが、String
strName = args[0];ってところが問題なんでしょうか?
お時間があるときで結構です。原因をご教授願えませんでしょうか?
何卒よろしくお願いします。
投稿:タタさん[wateryamy]/2011年 03月 10日 10時 59分
/更新:2011年 03月 10日 11時 00分
RE:IndexOutOfBoundsExceptionエラー(174ページ)
by 竹形 誠司[takegata]
竹形です。こんにちは、
メールでも返信しましたが、こちらにもコメントします。
args[0]にはコマンドラインで指定した最初の引数が入ります。
引数がひとつも指定されていないとIndexOutOfBoundsExceptionになります。
メールでも返信しましたが、こちらにもコメントします。
args[0]にはコマンドラインで指定した最初の引数が入ります。
引数がひとつも指定されていないとIndexOutOfBoundsExceptionになります。
c:\jamyto\JDBC>java InsertTest test
のように、最後に引数を付けて実行してみてください。
投稿:竹形 誠司[takegata]/2011年 03月 10日 11時 04分
/更新:2011年 03月 10日 11時 05分
引数を指定して実行したところ、エラーはなくなり引数のデータがデータベースに登録されました。
基本的な質問で申し訳ありません。
ありがとうございました。
基本的な質問で申し訳ありません。
ありがとうございました。
投稿:タタさん[wateryamy]/2011年 03月 10日 13時 07分
/更新:2011年 03月 10日 13時 08分