質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

1回答

16959閲覧

JSP実行時のエラーメッセージについて

yk-211

総合スコア34

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2015/06/10 05:47

###前提・実現したいこと
こんにちは、質問です。
JSPを実行した際にSQLの接続?に関するエラーメッセージが出てきまして、
検索してみたのですが解決しませんでしたので、
質問させてください。
下記に記載いたしますので、原因が分かる方教えていただけないでしょうか。
よろしくお願いいたします。

###発生している問題・エラーメッセージ
No value specified for parameter 11
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2285)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2265)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2124)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2081)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2066)
at common.AbstractUpdateDao.executeUpdateSql(AbstractUpdateDao.java:88)
at common.AbstractUpdateDao.execute(AbstractUpdateDao.java:55)
at customer.CustomerDetail.doUpdate(CustomerDetail.java:434)
at customer.CustomerDetail.execute(CustomerDetail.java:80)
at common.AbstractBizLogic.doProcess(AbstractBizLogic.java:87)
at common.AbstractBizLogic.doPost(AbstractBizLogic.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)

###補足情報(言語/FW/ツール等のバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

パラメータ利用のSQLを使っていて、その11番目のパラメータが未設定なのだと思います。

投稿2015/06/10 05:52

jcs502ulf

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yk-211

2015/06/10 05:59

回答ありがとうございます。 11番目のパラメーターがセット出来ていないという事でしょうか?
jcs502ulf

2015/06/10 06:16

はい。PreparedStatementを使っているようなので、SQL内に「?」などのパラメータを定義していないでしょうか。
yk-211

2015/06/10 06:19

こういった形で書いているのですが、間違っているでしょうか。 protected String getSql() { StringBuilder strBuilder = new StringBuilder(); strBuilder.append("insert into customer "); strBuilder.append("("); strBuilder.append(" CustomerID,"); strBuilder.append(" CustomerNameKanji, "); strBuilder.append(" CustomerNameKana, "); strBuilder.append(" Gender, "); strBuilder.append(" Height, "); strBuilder.append(" Weight, "); strBuilder.append(" Birthday, "); strBuilder.append(" ZipCode, "); strBuilder.append(" Address, "); strBuilder.append(" Phone, "); strBuilder.append(" DeleteFlag,"); strBuilder.append(" RegistTime "); strBuilder.append(") values ( "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" ?, "); strBuilder.append(" 0, "); strBuilder.append(" NOW() "); strBuilder.append(");"); System.out.println("sql:" + strBuilder.toString()); return strBuilder.toString(); }
jcs502ulf

2015/06/10 06:56

見た限りパラメータは10個しかないですね。 executeUpdate()の直前で、PreparedStatementインスタンスに対して、getParameterMetaData().getParameterCount()を実行することは可能でしょうか。 または、試しにパラメータを使わず、固定値を設定して実行することはできないでしょうか。
yk-211

2015/06/10 07:19

回答ありがとうございます。 ためしに上記のINSERTでデータの登録をしてみましたが、問題なく出来ましたが UPDATEが出来ないため、ここが問題のような気がします。
jcs502ulf

2015/06/10 07:24

エラーが発生するのは上記INSERT文ではなく、別のUPDATE文ということでしょうか。 もしそうであれば、そのUPDATE文の方を記載いただけないでしょうか。
yk-211

2015/06/10 07:51

回答ありがとうございます。 UPDATE文を書き換えましたらエラーが出なくなりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問