コードの構文エラーは何ですか?SQL Java

Dimitra Deliopoulos:

私は自分のコードをずっと見つめ続けて、起こっている構文エラーを理解しようとしました:

エラー:テーブルの作成がjava.sql.SQLSyntaxErrorExceptionによって中断されました:SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、1行目で ''の近くで使用する正しい構文を確認してください

public static void main(String[] args) throws Exception {
    Scanner kbd = new Scanner(System.in);
    getConnection();

    boolean quit = false;
    while (!quit) {
        System.out.println("Select from the following options: \n" + "1) Create Table \n" + "2) Search Table \n"
                + "3) Quit \n" + "> ");
        int choice = kbd.nextInt();
        if (choice == 1) {

            System.out.println("Name your table: ");
            String tableName = kbd.nextLine();

            kbd.nextLine();

            System.out.println("How many columns would you like? ");
            int numColumns = kbd.nextInt();
            String[] columnTypes = new String[numColumns];
            String columnSpec = "";
            kbd.nextLine();
            String[] types = { "VARCHAR(100)", "INT", "decimal(3,2)" };
            int typeChoice;
            for (int i = 0; i < numColumns; i++) {
                System.out.printf(
                        "Select the type for column %d: \n" + "1)VarChar\n" + "2)Integer\n" + "3)Decimal\n > ",
                        i + 1);

                typeChoice = kbd.nextInt();

                kbd.nextLine();

                System.out.printf("Enter Column %d's name: ", i + 1);
                String columnsName = kbd.nextLine();

                if (typeChoice == 1) {
                    columnSpec += columnCreator(columnsName, types[0]);
                    columnTypes[i] = types[0];
                } else if (typeChoice == 2) {
                    columnSpec += columnCreator(columnsName, types[1]);
                    columnTypes[i] = types[1];
                } else {
                    columnSpec += columnCreator(columnsName, types[2]);
                    columnTypes[i] = types[2];
                }

            }
            columnSpec = columnSpec.substring(0, columnSpec.length() - 2);

            System.out.println(columnSpec);
            Trans.create(tableName, columnSpec);
            quit = true;
        }
    }
}

public static Connection getConnection() throws Exception {
    try {
        String driver = "com.mysql.jdbc.Driver";
        System.out.println("\n=> loading driver:");
        Class.forName(driver).newInstance();
        System.out.println("OK");
        String url = "jdbc:mysql://localhost/Walkthrough?useSSL=false";

        System.out.println("\n=> connecting:");
        DriverManager.getConnection(url, Trans.user, Trans.password);
        System.out.println("OK");
    } catch (Exception x) {
        System.err.println(x);
    }
    return null;
}

public static String columnCreator(String name, String type) {
    return name + " " + type + ", ";
}

トランスクラス:

public class Trans {
    static String url = "jdbc:mysql://localhost/Walkthrough?useSSL=false";
    static String user = "root";
    static String password = "password";

    public static void create(String table, String values) {
        // need to ensure not existing.
        // values = "id VARCHAR(6), quiz INT, avg decimal(3,2)";
        try {
            Class.forName("com.mysql.jdbc.Driver");

            Connection cx = DriverManager.getConnection(url, user, password);
            Statement st = cx.createStatement();
            String sql_drop = "DROP TABLE IF EXISTS " + table;
            st.executeUpdate(sql_drop);

            String sql_create = "CREATE TABLE " + table + '(' + values + ')';

            st.executeUpdate(sql_create);
            System.out.println("Table has been created");
        } catch (Exception x) {
            System.err.println("table creation is interrupted by " + x);
        }
    }
}

columnSpecの出力:

col1 VARCHAR(100), col2 VARCHAR(100), col3 VARCHAR(100)

tableNameから出力:

nameoftable

どんな洞察や助けもいただければ幸いです!

Arvind Kumar Avinash:

交換する

String sql_create = "CREATE TABLE " + table + '(' + values + ')';

String sql_create = "CREATE TABLE " + table + " (" + values + ")";

sql_create呼び出す前にの値をデバッグ/出力することをお勧めしますst.executeUpdate(sql_create);次のように印刷されます。

CREATE TABLE nameoftable (col1 VARCHAR(100), col2 VARCHAR(100), col3 VARCHAR(100))

更新:の 2つの呼び出しもnextLine()次々に表示されます。

System.out.println("Name your table: ");
String tableName = kbd.nextLine();
kbd.nextLine();

なぜ2番目の呼び出しが必要なのですか?2行目を削除しkbd.nextLine();ます。

これだけでなく、なぜあなたはkbd.nextLine();後に再び必要String columnSpec = "";ですか?

String columnSpec = "";
kbd.nextLine();

そして次kbd.nextLine();typeChoice = kbd.nextInt();

typeChoice = kbd.nextInt();
kbd.nextLine();

のこれらの不要な呼び出しをすべて削除しますkbd.nextLine();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このJavaコードのエラーは何ですか?

分類Dev

正しいJava main()メソッドのパラメーター構文は何ですか?

分類Dev

Java Insert Into CodeのSQL構文エラー

分類Dev

Javaの複数のインターフェース-構文は何ですか?

分類Dev

コードjavaに構文エラーがあります

分類Dev

Javaコマンドライン環境でのエコーとパイプの意味は何ですか?

分類Dev

Javaのラムダ構文の内訳は何ですか?

分類Dev

コンストラクターの後にメソッドをオーバーライドするセクションがあるこの Java 構文は何ですか?

分類Dev

javaScriptコードの構文エラーは何ですか?

分類Dev

javaScriptコードの構文エラーは何ですか?

分類Dev

Javaの拡張されたforループの構文は何ですか?

分類Dev

どのようにJavaでHTTPレスポンスコード400エラーを修正するには?任意の不正なリクエスト構文または無効な要求メッセージフレーミングはありますか?

分類Dev

VSコード警告を回避する方法:「[myfile] .javaは非プロジェクトファイルです。構文エラーのみが報告されます」

分類Dev

JavaからDELETEを実行する際のSQL構文エラー

分類Dev

PHPのexec()メソッドを使用してコードをコンパイルしている場合、Javaで構文エラーをキャッチするにはどうすればよいですか?

分類Dev

このforループのエラーは何ですか>> java netbeans

分類Dev

Javaコードの例では、参照と値は何ですか?

分類Dev

Java コードでエラーが発生するのはなぜですか?

分類Dev

Javaでの単一コードの意味は何ですか

分類Dev

Java Swingのコントローラーは何ですか?

分類Dev

Javaの過渡キーワード糖衣構文ですか?

分類Dev

次のJavaコードにエラーがあるのはなぜですか?

分類Dev

このJavaエラーの意味は何ですか

分類Dev

このJavaコードの説明は何ですか?

分類Dev

このScalaコードに相当するJavaは何ですか?

分類Dev

このScalaコードに相当するJavaは何ですか?

分類Dev

Java初心者; 簡単なサンプルコードをコピーした後のエラー?私の構成はめちゃくちゃですか?

分類Dev

スレッド「main」の例外java.sql.SQLException:「s」の近く:構文エラー

分類Dev

エラー「java.security.InvalidKeyException:Parameters missing」の原因は何ですか?

Related 関連記事

  1. 1

    このJavaコードのエラーは何ですか?

  2. 2

    正しいJava main()メソッドのパラメーター構文は何ですか?

  3. 3

    Java Insert Into CodeのSQL構文エラー

  4. 4

    Javaの複数のインターフェース-構文は何ですか?

  5. 5

    コードjavaに構文エラーがあります

  6. 6

    Javaコマンドライン環境でのエコーとパイプの意味は何ですか?

  7. 7

    Javaのラムダ構文の内訳は何ですか?

  8. 8

    コンストラクターの後にメソッドをオーバーライドするセクションがあるこの Java 構文は何ですか?

  9. 9

    javaScriptコードの構文エラーは何ですか?

  10. 10

    javaScriptコードの構文エラーは何ですか?

  11. 11

    Javaの拡張されたforループの構文は何ですか?

  12. 12

    どのようにJavaでHTTPレスポンスコード400エラーを修正するには?任意の不正なリクエスト構文または無効な要求メッセージフレーミングはありますか?

  13. 13

    VSコード警告を回避する方法:「[myfile] .javaは非プロジェクトファイルです。構文エラーのみが報告されます」

  14. 14

    JavaからDELETEを実行する際のSQL構文エラー

  15. 15

    PHPのexec()メソッドを使用してコードをコンパイルしている場合、Javaで構文エラーをキャッチするにはどうすればよいですか?

  16. 16

    このforループのエラーは何ですか>> java netbeans

  17. 17

    Javaコードの例では、参照と値は何ですか?

  18. 18

    Java コードでエラーが発生するのはなぜですか?

  19. 19

    Javaでの単一コードの意味は何ですか

  20. 20

    Java Swingのコントローラーは何ですか?

  21. 21

    Javaの過渡キーワード糖衣構文ですか?

  22. 22

    次のJavaコードにエラーがあるのはなぜですか?

  23. 23

    このJavaエラーの意味は何ですか

  24. 24

    このJavaコードの説明は何ですか?

  25. 25

    このScalaコードに相当するJavaは何ですか?

  26. 26

    このScalaコードに相当するJavaは何ですか?

  27. 27

    Java初心者; 簡単なサンプルコードをコピーした後のエラー?私の構成はめちゃくちゃですか?

  28. 28

    スレッド「main」の例外java.sql.SQLException:「s」の近く:構文エラー

  29. 29

    エラー「java.security.InvalidKeyException:Parameters missing」の原因は何ですか?

ホットタグ

アーカイブ