不从java将数据导入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

我没有把数据输入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来实现该类。我没有对该类进行任何更改。这不会影响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)的版本,我不明白。您应该指定要为其插入值的列名,以便对这些特定列进行插入。