import java.sql.*;public class A
{
public static void main(String[] args)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/Yang";Connection con = DriverManager.getConnection(url,"root","03allen");
Statement stmt = con.createStatement();String query = "select * from table_1";
ResultSet rs=stmt.executeQuery(query);while(rs.next())
{
System.out.println(rs.getString(2));}
int a = 111111;
String b = "dd";
int c = 111;
int d = 111;
int e = 111;
String SQLOrder = "INSERT INTO table_1 VALUES("+a+","+b+","+c+","+d+","+e+")";
stmt.executeUpdate(SQLOrder);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}}
}首先,数据库已经连上了,没有问题。。
数据库里五个项里,第二个类型为LONGVARCHAR(MySQL里没发现String类型)我在这里输入为String型的。。
出现异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column "dd" in 'field list'
但是,如果我把String类型的b,改成int型的就能写入数据库,这是为什么,请高手帮忙解答下

解决方案 »

  1.   

    Unknown column "dd" in 'field list' 说明在数据库里的字段(就是列名)出现错误 你先检查一下数据库是否有错 以为你插入了5个数据, 所以在数据库里需要存在相应的5个字段还有你的sql语句有问题 正规应该是 INSERT INTO table_1 VALUES('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"')
      

  2.   

    String SQLOrder = "INSERT INTO table_1 VALUES("+a+","+b+","+c+","+d+","+e+")"; 
    stmt.executeUpdate(SQLOrder); 格式错了,varchar的插入格式是加单引号的
    如"insert into v_test values (1,'viszl')";
    第二个字段是varchar的
    你的那个改为
    String SQLOrder = "INSERT INTO table_1 VALUES("+a+",‘"+b+"’,"+c+","+d+","+e+")"; 
      

  3.   

    varchar类型的字段插入数据库的时候要加'',int类型的不需要。
    String SQLOrder = "INSERT INTO table_1 VALUES("+a+",'"+b+"',"+c+","+d+","+e+")";
      

  4.   

    int能自动转换成LONGVARCHAR
    ???