2016-04-07 2 views
1

私はデータベースに接続するアプリケーションを持っており、名前でまだ存在していなければテーブルを作成し、私のログイン・フレームにパスワードをハッシュすることができるように、新しい登録ユーザーの情報を入力し、ハッシュされるデータベースと照合します。現在、次のエラーコードがあります。Java/Mysql..SQLException:テーブルには少なくとも1つの列が必要ですSQLState:42000 VendorError:1113

SQLException: A table must have at least 1 column 
SQLState: 42000 
VendorError: 1113 
このコードスニペットと

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 

public class LoadDriver { 

public static void sqlDriver(String[] args) throws InstantiationException, 
     IllegalAccessException, ClassNotFoundException { 
    // TODO Auto-generated method stub 

    try { 

     Class.forName("com.mysql.jdbc.Driver").newInstance(); 

     Connection conn = null; 
     conn = 

     DriverManager 
       .getConnection(
         "jdbc:mysql://dbname.dbwebsite.com:3306", 
         "user", "H45H3DP455W0RD"); 

     java.sql.PreparedStatement pstmt = conn 
       .prepareStatement("USE db_name"); 
     java.sql.PreparedStatement pstmt2 = conn. 
       prepareStatement("CREATE TABLE IF NOT EXISTS db_table"); 
     java.sql.PreparedStatement pstmt3 = conn.prepareStatement("INSERT INTO db_table (user, pass, repass, name, lame, dob, gender, adds, apt, city, zip, phone, email) VALUES(id int NOT NULL auto_increment, VARCHAR(30) user, VARCHAR(30) pass, VARCHAR(30) repass, VARCHAR(30) name, VARCHAR(30) lname, VARCHAR(10) dob, TEXT gender, TEXT addr, TEXT apt, TEXT city, TEXT zip, TEXT phone, VARCHAR(30) email, PRIMARY KEY(id));"); 


     pstmt.executeUpdate(); 
     pstmt2.executeUpdate(); 
     pstmt3.executeUpdate(); 

     ResultSet rs = pstmt.executeQuery(); 
     rs.close(); 


    } catch (SQLException ex) { 
     // handle any errors 
     System.out.println("SQLException: " + ex.getMessage()); 
     System.out.println("SQLState: " + ex.getSQLState()); 
     System.out.println("VendorError: " + ex.getErrorCode()); 
    } 


} 

} 
メインクラスで

JButton registerSend = new JButton("Submit"); 
          regFrame.add(registerSend, BorderLayout.SOUTH); 
          registerSend 
            .addActionListener(new ActionListener() { 
             @Override 
             public void actionPerformed(
               ActionEvent r) { 

              JFrame gameFrame = new JFrame(
                "Welcome to Heavy Evil"); 
              gameFrame.setBounds(0, 0, 1200, 
                800); 
              gameFrame.setVisible(true); 

              int id; 
              String user = tagText.getText(); 
              char[] pass = passText.getPassword(); 
              char[] repass = passConfirm 
                .getPassword(); 
              String name = heyText.getText(); 
              String lname = heyText2 
                .getText(); 
              String dob = userAge.getText(); 
              String gender = genDer 
                .getText(); 
              String addr = heyText3 
                .getText(); 
              String apt = heyText4.getText(); 
              String city = heyText5 
                .getText(); 
              String zip = heyText6.getText(); 
              String phone = heyText7 
                .getText(); 
              String email = heyText8 
                .getText(); 

              try { 
               LoadDriver.sqlDriver(null); 


              } catch (InstantiationException e) { 
               // TODO Auto-generated catch 
               // block 
               e.printStackTrace(); 
              } catch (IllegalAccessException e) { 
               // TODO Auto-generated catch 
               // block 
               e.printStackTrace(); 
              } catch (ClassNotFoundException e) { 
               // TODO Auto-generated catch 
               // block 
               e.printStackTrace(); 
              } 

             } 
            }); 
+1

です。最初にエラーメッセージを読んでください。 _Aテーブルには少なくとも1つの列が必要です._ – Satya

答えて

2
CREATE TABLE IF NOT EXISTS db_table 

あなたは、エラーメッセージがあなたに言った、まさにである、任意の列を指定していません。正しい構文は

CREATE TABLE IF NOT EXISTS db_table (
    column_name1  datatype, 
    column_name2  datatype, 
    etc. 
) 
+0

私はメインクラスに@SuppressWarningsを持っていますか?それはOKですか、結果セットで作成する必要がありますか? –

+0

申し訳ありませんが、その質問は理にかなっていません。 @ SuppressWarningsはSQLとは関係ありません。 –

+0

あなたは私の答えのポイントを見逃したようです。 'create table'文の構文が正しくありません。あなたはそれを修正しましたか? –

関連する問題