不从java将数据导入mysql
我没有把数据输入mysql不从java将数据导入mysql,java,mysql,Java,Mysql,我没有把数据输入mysql void connectionDB() { try { Class.forName(fileReader.getdriver()); String url = "jdbc:mysql://"+ fileReader.gethost() + ":" + fileReader.getDBport() +"/" + fileReader.getdbname(); conn = D
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来实现该类。我没有对该类进行任何更改。这不会影响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)
可以显式指定要插入数据的列。。如您所见,您还可以跳过某些列
String sql =
"INSERT INTO Statistics3 (column1, column2, column4) VALUES ('" + ipv6Address
+ "','" + dateTime.trim() + "'," + battpercent + ")";
column1
、column2
和column4
是与您的值相对应的列-ipv6地址
、datetime
和battpercent
。。在你的桌子上
因此,如果插入了列-
column3
,则可以跳过它。。它将获得您设置的默认值 您可以明确指定要插入数据的列。。如您所见,您还可以跳过某些列
String sql =
"INSERT INTO Statistics3 (column1, column2, column4) VALUES ('" + ipv6Address
+ "','" + dateTime.trim() + "'," + battpercent + ")";
column1
、column2
和column4
是与您的值相对应的列-ipv6地址
、datetime
和battpercent
。。在你的桌子上
因此,如果插入了列-column3
,则可以跳过它。。它将获得您设置的默认值
向现有表Statistics3中添加了一些列
这是你的问题。值的数量与存在的列的数量不匹配
您应该使用SQL语句的版本
insert into table (col1,col2) values (val1,val2)
向现有表Statistics3中添加了一些列
这是你的问题。值的数量与存在的列的数量不匹配
您应该使用SQL语句的版本
insert into table (col1,col2) values (val1,val2)
insert查询中给定的值与数据库中的列不匹配。确保查询中的所有列(表中)都有值。插入查询中给出的值与数据库中的列不匹配。确保查询中的所有列(表中)都有值。是否调用了
stat.executeUpdate()
?显示代码如何执行创建的sql查询字符串。此代码不显示插入。它显示了一个连接和一条语句的创建,然后是一个SQL命令对字符串变量的赋值。您可以发布更多的代码吗?是否加载了驱动程序类…是否调用了stat.executeUpdate()
?显示您的代码如何执行您创建的SQL查询字符串。此代码不显示插入。它显示了一个连接和一个语句的创建,然后是一个SQL命令对字符串变量的赋值。你能发布更多的代码吗?让你加载驱动程序类…从堆栈跟踪中,你似乎插入了比表中列数更多或更少的值。@user1659213。。你的表结构是什么?我已经更改了mysql统计表中的列。以前有9列,我已经添加了4列。现在总数是11。添加列会影响这个类。如果是这样,如何change@user1659213您可以显式指定要将值插入的列。。查看我更新的帖子。从堆栈跟踪中,似乎插入的值比表中的列数多。@user1659213。。你的表结构是什么?我已经更改了mysql统计表中的列。以前有9列,我已经添加了4列。现在总数是11。添加列会影响这个类。如果是这样,如何change@user1659213您可以显式指定要将值插入的列。。请参阅我更新的帖子。您应该使用SQL语句insert into table(col1,col2)值(val1,val2)的版本,我不理解。您应该指定要插入值的列名,以便对这些特定列进行insert。您应该使用SQL语句insert into table(col1,col2)值(val1,val2)的版本,我不明白。您应该指定要为其插入值的列名,以便对这些特定列进行插入。