2013-07-28 52 views
-3

我有一个新的怀疑。我想在macfast数据库中创建一个名为admin的表。成功创建了表,但是当我以手动方式插入值时(使用查询),它似乎是一个error.my代码如下VALUE插入错误

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) 
+3

不喊在您的标题。它很烦人。 ***我可以撒娇,而且会更恼人。*** – hexafraction

回答

3

你错过了引号''各地VARCHAR列值。

String insert = "INSERT INTO admin (id,user_name,password,isAdmin) " + 
       "VALUES (1, 'admin', 'admin', 1)"; 
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)"; 
0

你值需要引号或他们作为字段名。

公共无效createTableAdmin(){ 尝试{

 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 

} //结束尝试

}