前提・実現したいこと
ここに質問の内容を詳しく書いてください。
新規登録の際、入力されたログインIDと名前とパスワードを基にInsertのsqlを3つ行いたいと考えています。
新規登録用のサーブレットで以下のDAOの中のsignupメソッドを使う感じです。
3つの引数は入力されたログインIDと名前とパスワードとなっています。
発生している問題・エラーメッセージ
sqlで問題が発生していて、データベースに反映ができません。
データベースに登録できるようにしたいです。
Java
1public void signup(String inputLoginId, String inputUserName, String inputPassword) { 2 Connection con=null; 3 con=DBManager.getConnection(); 4 5 try { 6 con.setAutoCommit(false); 7 String sql="BEGIN;"; 8 sql+=" INSERT INTO user (login_id,name,password) VALUES (?,?,?);"; 9 sql+=" INSERT INTO ranking_easy (user_id) select id from user where login_id=?;"; 10 sql+=" INSERT INTO ranking_hard (user_id) select id from user where login_id=?;"; 11 sql+=" COMMIT;"; 12 PreparedStatement st=con.prepareStatement(sql); 13 st.setString(1, inputLoginId); 14 st.setString(2, inputUserName); 15 st.setString(3, inputPassword); 16 st.setString(4, inputLoginId); 17 st.setString(5, inputLoginId); 18 st.executeUpdate(); 19 con.commit(); 20 st.close(); 21 22 }catch (SQLException e) { 23 e.printStackTrace(); 24 } finally { 25 if (con != null) { 26 try { 27 con.close(); 28 } catch (SQLException e) { 29 e.printStackTrace(); 30 } 31 } 32 } 33 34 } 35 36``` 37エラーメッセージ 38``` 39 40 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO user (login_id,name,password) VALUES ('tanaka','田中','password');' at line 1 41 42```ここに言語名を入力 43ソースコード 44``` 45 46### 試したこと 47 48ググりましたがよくわからず・・・・ 49 50### 補足情報(FW/ツールのバージョンなど) 51eclipse/tomcat使用 52mySQL使用 53 54データベースのuserテーブルについて 55id int(11) auto_increment 56name varchar(255) 57login_id varchar(255) 58password varchar(255) 59 60データベースのranking_easyテーブルについて 61id int(11) auto_increment 62user_id int(11) 63easy_high_score int(11) 64 65データベースのranking_hardテーブルについて 66id int(11) auto_increment 67user_id int(11) 68hard_high_score int(11)
回答2件
あなたの回答
tips
プレビュー