2017-09-20 6 views
-2

이 오류를 표시하므로 내 코드에 약간의 문제가 있습니다.java.sql.SQLSyntaxErrorException?

'java.sql.SQLSyntaxErrorException : 할당 된 값의 수가 지정된 또는 암시 된 열 수와 같지 않습니다.'

나는 비슷한 문제를 읽지 만 여전히 광산이 어떻게 오류를 표시하는지 혼란 스럽습니다. 또한 나는이 값들 사이에 ","을 넣으려고했지만 여전히 좋지는 않습니다. 그리고 준비된 진술은 무엇입니까?

//CONNECTION 
    Connection conn = null; 
    try{ 
    conn = 
    DriverManager.getConnection("jdbc:derby://localhost:1527/MetroEventsDB", 
    "root", "root"); 
    System.out.println("Connected"); 

    //Insertion 
    Statement stmt = (Statement) conn.createStatement(); 
    stmt.execute("INSERT INTO Users(UserID, Password, FirstName, LastName, Gender, Birthdate) VALUES('"+txtUserID.getText()+txtPassword.getText()+txtFirstName.getText()+txtLastName.getText()+gender+txtBirthdate.getText()+"')"); 
    }catch(SQLException e){ 
      System.err.println(e); 
      } 
+1

'PreparedStatement'를 올바르게 사용하는 법을 배우십시오. [JDBC 튜토리얼] (http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html)을 읽음으로써 –

+0

죄송합니다. 오랫동안 나는 그것을 보았다가 한 번 qoutation이 누락 된 것을 보았습니다. 그래서 이렇게 보일 것입니다. VALUES (' "+ txtUserID.getText() +"', ""+ txtPassword.getText() – justanything

+0

아니요, 그것은 자리 표시자를 가진'PreparedStatement'이어야합니다. ** 연결하지 말아야합니다 ** SQL 쿼리에 사용자 입력 –

답변

1

stmt.execute에 구문 오류가 있습니다. 올바른 구문은 다음과 같습니다.

+0

예 !! .... 아하하 나는 그 단일 qoutation 아 ... 답장을 주셔서 감사합니다. – justanything