我不会把数据放入mysql
void connectionDB() {
try {
Class.forName(fileReader.getdriver());
String url = "jdbc:mysql://"+ fileReader.gethost() + ":" + fileReader.getDBport() +"/" + fileReader.getdbname();
conn = DriverManager.getConnection(url, fileReader.getusername(),fileReader.getpasswd());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException se) {
se.printStackTrace();
}
}
public void snmp_mysql(String ipv6Address, String[] resString) {
try {
stat = conn.createStatement();
String sql =
("INSERT INTO Statistics3 VALUES ('" + ipv6Address + "','"
+ dateTime.trim() + "'," + battpercent + ")");
stat.executeUpdate(sql);
stat.close();
System.out.println("updating");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("SQL statement is not executed!");
}
}代码未显示任何错误,并且在MySQL中显示空集(0.01秒)。之前它工作正常,并得到了输出。我没有做任何改变。我不知道为什么它不能工作。我在另一个项目中使用了另一个类,并在现有的表Statistics3中添加了一些列,并使用了mysql作为该类。我没有在此class.That中做任何更改mysql不会影响mysql我知道当我运行该项目时,我在输出过程中遇到了这些错误
java.sql.SQLException: Column count doesn't match value count at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)发布于 2012-10-04 13:29:51
您可以显式指定要插入数据的列。如您所见,您还可以跳过某些列。
String sql =
"INSERT INTO Statistics3 (column1, column2, column4) VALUES ('" + ipv6Address
+ "','" + dateTime.trim() + "'," + battpercent + ")";column1、column2和column4是与您的值对应的列- ipv6Address、datetime和battpercent。在你的桌子上..
因此,如果您已经插入了一个column3 - column,那么您可以直接跳过它。它将获得您设置的默认值。
发布于 2012-10-04 13:45:43
向现有表Statistics3中添加了一些列
这就是你的问题。值的数量与存在的列数不匹配。
您应该使用SQL语句的版本
insert into table (col1,col2) values (val1,val2) 发布于 2012-10-04 13:57:33
insert查询中给出的值与数据库中的列不匹配。确保查询中的所有列(在表中)都有值。
https://stackoverflow.com/questions/12720537
复制相似问题