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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

9856閲覧

エラー: No value specified for parameter

KasperHekmatyar

総合スコア81

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/07/11 07:32

編集2017/07/11 07:33

###前提・実現したいこと
データ登録する際にエラーが発生しました。
###発生している問題・エラーメッセージ

java.sql.SQLException: No value specified for parameter 9 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2566) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2542) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2389) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318) at exercise_jdbc_kihon_enshu_combineRegist.SendSqlOrder.sendSqlOrder(SendSqlOrder.java:82) at exercise_jdbc_kihon_enshu_combineRegist.ReadFile.csv_read(ReadFile.java:44) at exercise_jdbc_kihon_enshu_combineRegist.FileChooser.fileChooser(FileChooser.java:42) at exercise_jdbc_kihon_enshu_combineRegist.UI$2.actionPerformed(UI.java:81) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6297) at javax.swing.JComponent.processMouseEvent(JComponent.java:3275) at java.awt.Component.processEvent(Component.java:6062) at java.awt.Container.processEvent(Container.java:2039) at java.awt.Component.dispatchEventImpl(Component.java:4660) at java.awt.Container.dispatchEventImpl(Container.java:2097) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166) at java.awt.Container.dispatchEventImpl(Container.java:2083) at java.awt.Window.dispatchEventImpl(Window.java:2489) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674) at java.awt.EventQueue.access$400(EventQueue.java:81) at java.awt.EventQueue$2.run(EventQueue.java:633) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$3.run(EventQueue.java:647) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:644) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

###該当のソースコード

java

1package exercise_jdbc_kihon_enshu_combineRegist; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.SQLException; 7import java.sql.Timestamp; 8import java.util.Iterator; 9import java.util.List; 10 11import javax.swing.JOptionPane; 12 13public class SendSqlOrder { 14 15 public SendSqlOrder() { 16 // TODO 自動生成されたコンストラクター・スタブ 17 } 18 19 public static void main(String[] args) { 20 21 } 22 23 public void sendSqlOrder(List<FileDataAccount> ListfileData) { 24 25 int sqlExeRstCnt = 0; 26 int total_sqlExeRstCnt =0; 27 Connection con = null; 28 PreparedStatement pstmt = null; 29 30 try { 31 // ①JDBCドライバのロード 32 // JDBCドライバを読み込む。Classクラスの静的メソッドでJDBCドライバをロードする(JDBC 33 // DRIVER登録) 34 35 Class.forName("com.mysql.jdbc.Driver"); 36 // 2. MySQLデータベースへの接続取得・引数の設定 37 // ドライバーマネージャーからデータベースへ接続 38 String url = "jdbc:mysql://localhost/witc_si_kenshu?user=root&password=root"; 39 con = DriverManager.getConnection(url); 40 41 // トランザクション設定>自動コミット解除 42 con.setAutoCommit(false); 43 44 StringBuilder sbrSql = new StringBuilder(); 45 46 // 4.SQL文構築 47 for (Iterator<FileDataAccount> vrb_ite = ListfileData.iterator(); vrb_ite.hasNext();) { 48 49 FileDataAccount vrb_FileDataAccount = vrb_ite.next(); 50 sbrSql.append("INSERT IGNORE INTO"); 51 sbrSql.append(" AUTHENTICATION_ACCOUNT("); 52 sbrSql.append(" AUTH_USER_ID,AUTH_USER_NAME,AUTH_PASSWORD,AUTH_USER_LVL,AUTH_DEPT_CD,AUTH_DELETE_FLG,CREATE_DATE,CREATE_USER"); 53 sbrSql.append(")"); 54 sbrSql.append(" VALUES("); 55 sbrSql.append("?"); 56 sbrSql.append(",?"); 57 sbrSql.append(",?"); 58 sbrSql.append(",?"); 59 sbrSql.append(",?"); 60 sbrSql.append(",?"); 61 sbrSql.append(",?"); 62 sbrSql.append(",?"); 63 sbrSql.append(")"); 64 65 // 4-1 connectionへのSQL文 66 pstmt = con.prepareStatement(sbrSql.toString()); 67 68 // 4-2 SQL文への値設定 69 70 pstmt.setString(1, vrb_FileDataAccount.getAuth_user_id()); 71 pstmt.setString(2, vrb_FileDataAccount.getAuth_user_name()); 72 pstmt.setString(3, vrb_FileDataAccount.getAuth_password()); 73 pstmt.setString(4, vrb_FileDataAccount.getAuth_user_lvl()); 74 pstmt.setInt(5, vrb_FileDataAccount.getAuth_dept_cd()); 75 pstmt.setInt(6, vrb_FileDataAccount.getAuth_delete_flg()); 76 pstmt.setTimestamp(7, new Timestamp(System.currentTimeMillis())); 77 pstmt.setString(8,"root"); 78 79 // 5.SQL(問合せ)の実行 80 // 追加・更新・削除の場合:SQLステートメント・executeUpdateメソッドを使用する 81 // SQLの実行結果は件数として返される 82 sqlExeRstCnt = pstmt.executeUpdate(); 83 total_sqlExeRstCnt+=sqlExeRstCnt; 84 85 } 86 87 88 if (total_sqlExeRstCnt > 0) { 89 con.commit(); 90 JOptionPane.showMessageDialog(null, total_sqlExeRstCnt + "件のデータが更新されました。", "更新結果", 91 JOptionPane.INFORMATION_MESSAGE); 92 93 }else{ 94 95 JOptionPane.showMessageDialog(null, "更新失敗しました。", "更新結果", 96 JOptionPane.INFORMATION_MESSAGE); 97 98 99 } 100 101 } catch (Exception ec) { 102 103 try { 104 105 // 8.データ破棄 106 con.rollback(); 107 ec.printStackTrace(); 108 System.out.println("a"); 109 110 } catch (SQLException e) { 111 e.printStackTrace(); 112 } finally { 113 114 try { 115 116 // ステートメントインスタンスがクローズされていない場合、クローズ 117 if (pstmt != null) { 118 // ステートメントインスタンスをクローズ 119 pstmt.close(); 120 } // end if 121 // コネクションインスタンスがクローズされていない場合、クローズ 122 if (con != null) { 123 // 接続をクローズ 124 con.close(); 125 126 } // end if 127 } catch (SQLException e) { 128 e.printStackTrace(); 129 } 130 } 131 } 132 } 133} 134

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

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

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

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

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

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

guest

回答2

0

ベストアンサー

sbrSql が、appendしつづけてるからですね。
プリペアドステートメントは1回つくればいいので、sbrSqlはforの外側でString作ればよいはず。

投稿2017/07/11 08:10

momon-ga

総合スコア4820

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

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

0

for文でPreparedStatementをクローズしていないのでカーソルが9からスタートしている、かつ9番のパラメータは設定していないのでそのようなエラーが出るのではないでしょうか。
for文の最後にpstmt.close()を呼び出すのはいかがでしょうか。

投稿2017/07/11 08:02

Clor

総合スコア883

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

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

KasperHekmatyar

2017/07/11 08:32

やってみたのですが、駄目でした(><)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問