0

java for mysql を使用してテーブルを作成しようとしています。コードは以下です。

  Statement stmt2 = con.createStatement();

  String sql = "CREATE TABLE " + libcard +
               "(Title INTEGER, " +
               " Director VARCHAR(255), " + 
               " dateBorrowed DATE, " + 
               " dueDate DATE)"; 

  stmt.executeUpdate(sql);

しかし、常にエラーがあります。:: 例外メッセージを以下に示します:_

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の '23232.0(Title INTEGER, Director VARCHAR(255), dateBorrowed DATE, dueDate DATE' 付近で使用する正しい構文を確認してください。

4

2 に答える 2

2

有効なテーブル名を考え出す方法については、ドキュメントを確認してください。あなたの場合23232.0、バッククォートで囲む必要があります:

String sql = "CREATE TABLE `" + libcard + "`" +
           " (Title INTEGER, " +
           " Director VARCHAR(255), " + 
           " dateBorrowed DATE, " + 
           " dueDate DATE)"; 
于 2013-09-28T13:22:31.923 に答える
0

このコードを試してください

try{

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


      System.out.println("Connecting to a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");


      System.out.println("Creating table in given database...");
      stmt = conn.createStatement();

      String sql = "CREATE TABLE " + libcard +
               "(Title INT(2), " +
               " Director VARCHAR(255), " + 
               " dateBorrowed DATE, " + 
               " dueDate DATE)"; 

      stmt.executeUpdate(sql);
      System.out.println("Created table in given database...");
   }catch(SQLException se){

      se.printStackTrace();
   }catch(Exception e){

      e.printStackTrace();
   }
于 2013-09-28T13:19:04.543 に答える