-3

新たな疑問があります。macfast データベースに admin という名前のテーブルを作成したいと考えています。テーブルは正常に作成されましたが、手動で (クエリを使用して) 値を挿入するたびにエラーが発生するようです。私のコードは次のとおりです。

  public void createTableAdmin() {
    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 admin " +
                    "(id INTEGER not NULL, " +
                    " user_name VARCHAR(255), " + 
                    " password VARCHAR(255), " + 
                    " isAdmin BOOLEAN NOT NULL DEFAULT '0', " +  
                    " PRIMARY KEY ( id ))"; 
            stmt.executeUpdate(sql1);

            String insert="INSERT INTO admin(id,user_name,password,isAdmin)VALUES(1,admin,admin,1)";
            stmt.executeUpdate(insert);


        }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: Unknown column 'admin' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
4

3 に答える 3

3

列の値''を囲む引用符がありません。VARCHAR

String insert = "INSERT INTO admin (id,user_name,password,isAdmin) " +
                "VALUES (1, 'admin', 'admin', 1)";
于 2013-07-28T14:16:21.550 に答える
3

文字列を正しく引用していません。

String insert=
   "INSERT INTO admin(id,user_name,password,isAdmin)VALUES(1,admin,admin,1)";

する必要があります

String insert=
   "INSERT INTO admin(id,user_name,password,isAdmin)VALUES(1,'admin','admin',1)";
于 2013-07-28T14:16:24.187 に答える