0

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)
4

3 に答える 3

3

データを挿入する列を明示的に指定できます。ご覧のとおり、一部の列をスキップすることもできます。

String sql =
    "INSERT INTO Statistics3 (column1, column2, column4) VALUES ('" + ipv6Address
                            + "','" + dateTime.trim() + "'," + battpercent + ")";

column1、、、column2およびは、テーブル内の値- 、、および..にcolumn4対応する列です。ipv6Addressdatetimebattpercent

したがって、列を挿入した場合はcolumn3、それをスキップできます。設定したデフォルト値が取得されます。

于 2012-10-04T05:29:51.410 に答える
0

挿入クエリで指定された値がDBの列と一致しません。クエリ内の(テーブル内の)すべての列の値があることを確認してください。

于 2012-10-04T05:57:32.530 に答える
0

既存のテーブルStatistics3にいくつかの列を追加しました

あなたの問題があります。値の数が、存在する列の数と一致しません。

SQLステートメントのバージョンを使用する必要があります

 insert into table (col1,col2) values (val1,val2) 
于 2012-10-04T05:45:43.360 に答える