-1

テキストフィールドから名前を自動的に取得するアプリケーション用のデータベースを作成する計画があります(実行時にテキストフィールドがnullではありません)。しかし、構文エラーがあります。この同じコードは、同じプロジェクトの別のJavaページで実行されます。次のコード作成タスクを実行します。

 public void FacltyNameTable(){

      String fcltyName = fcltyUserNameTxt.getText();

              try{

            Class.forName("com.mysql.jdbc.Driver");
            conn = (Connection) DriverManager.getConnection(DB_URL_table, USER, PASS);
            stmt = (Statement) conn.createStatement();

            String sql1 = "CREATE TABLE IF NOT EXISTS '"+fcltyName+"' " +
                    "(id INTEGER not NULL AUTO_INCREMENT, " +
                    " rollNo VARCHAR(255), " + 
                    " studentName VARCHAR(255), " + 
                    "CommunicationOral INTEGER, "+
                    "Communicationwritten INTEGER, "+
                    "Leadership INTEGER, "+
                    "AnalyticalAbilities INTEGER, "+
                    "Interpersonalskills INTEGER, "+
                    "DecisionMakingSkills INTEGER, "+
                    "SelfConfidence INTEGER, "+
                    "Creativity INTEGER, "+
                    "Punctualityregularity INTEGER, "+
                    "GeneralAwareness INTEGER, "+
                    "Commitment INTEGER, "+
                    "Hardwork INTEGER, "+

                    " PRIMARY KEY ( id ))"; 

            stmt.executeUpdate(sql1);


             String insert1="INSERT IGNORE INTO '"+fcltyName+"'(id,rollNo,studentName,CommunicationOral,Communicationwritten,Leadership,AnalyticalAbilities,Interpersonalskills,DecisionMakingSkills,SelfConfidence,Creativity,Punctualityregularity,GeneralAwareness,Commitment,HardWork)VALUES(1,'1','ABHIJITH V GEORGE ',0,0,0,0,0,0,0,0,0,0,0,0)";
            stmt.executeUpdate(insert1);

 }catch(SQLException se){
            //Handle errors for JDBC
            se.printStackTrace();
    }catch(Exception e){
    //Handle errors for Class.forName
    e.printStackTrace();
    }finally{
        //finally block used to close resources
  try{
     if(stmt!=null)
        conn.close();
  }catch(SQLException se){
  }// do nothing
  try{
     if(conn!=null)
        conn.close();
  }catch(SQLException se){
     se.printStackTrace();
  }//end finally try
 }//end try
 }

以下はエラーを示しています

 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 ''' (id INTEGER not NULL AUTO_INCREMENT,  rollNo VARCHAR(255),  studentName VARCH' at line 1

'String sql1 = "CREATE TABLE IF NOT EXISTS"+fcltyName+"' " +........String sql1 = "CREATE TABLE IF NOT EXISTS fcltyName " +.......完全に機能するように変更すると、クエリが間違っていると思います。助けが必要です

4

3 に答える 3

1

あなたfcltyUserNameTxtはおそらく空です。ロギングを試すことができますか:

String fcltyName = fcltyUserNameTxt.getText();
System.out.println(fcltyName); // ??
于 2013-08-12T16:59:03.530 に答える
0

私は Connection conn=Drivermanager....etc を使用します。型キャストは使用しません。また、常に準備済みステートメントを使用してください。きれいで安全です。

1 つの小さなエラー。例えば。id int(10) not null auto_increment を使用する必要があります

int のサイズを指定する必要があります。mysqlを想定

于 2013-08-12T16:35:18.657 に答える