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型的就能写入数据库,这是为什么,请高手帮忙解答下。。。
9 个解决方案
#1
Unknown column "dd" in 'field list' 说明在数据库里的字段(就是列名)出现错误 你先检查一下数据库是否有错 以为你插入了5个数据, 所以在数据库里需要存在相应的5个字段
还有你的sql语句有问题 正规应该是 INSERT INTO table_1 VALUES( '"+a+" ', '"+b+" ', '"+c+" ', '"+d+" ', '"+e+" ')
还有你的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
你这样插入不好,如果字段多了,你根本找不到那错了,建议列名写上,一般来说:要不就是类型不匹配,要不就是没有这列!
#4
varchar类型的字段插入数据库的时候要加'',int类型的不需要。
String SQLOrder = "INSERT INTO table_1 VALUES("+a+", '"+b+" ',"+c+","+d+","+e+")";
String SQLOrder = "INSERT INTO table_1 VALUES("+a+", '"+b+" ',"+c+","+d+","+e+")";
#5
String字段需要加引号的啊
#6
sql 语句错误
#7
···
#8
int能自动转换成LONGVARCHAR
???
???
#9
谢谢啦,讲的很详细。。。以后有问题,还请多多帮忙哈。。
#1
Unknown column "dd" in 'field list' 说明在数据库里的字段(就是列名)出现错误 你先检查一下数据库是否有错 以为你插入了5个数据, 所以在数据库里需要存在相应的5个字段
还有你的sql语句有问题 正规应该是 INSERT INTO table_1 VALUES( '"+a+" ', '"+b+" ', '"+c+" ', '"+d+" ', '"+e+" ')
还有你的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
你这样插入不好,如果字段多了,你根本找不到那错了,建议列名写上,一般来说:要不就是类型不匹配,要不就是没有这列!
#4
varchar类型的字段插入数据库的时候要加'',int类型的不需要。
String SQLOrder = "INSERT INTO table_1 VALUES("+a+", '"+b+" ',"+c+","+d+","+e+")";
String SQLOrder = "INSERT INTO table_1 VALUES("+a+", '"+b+" ',"+c+","+d+","+e+")";
#5
String字段需要加引号的啊
#6
sql 语句错误
#7
···
#8
int能自动转换成LONGVARCHAR
???
???
#9
谢谢啦,讲的很详细。。。以后有问题,还请多多帮忙哈。。