0

MySQLテーブルにデータを挿入しようとしていますが、次のような例外メッセージが表示されます。

Apr 16, 2012 3:01:03 PM RFID.RFID passDetInput
SEVERE: Can not issue data manipulation statements with executeQuery().
java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:436)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1390)
at RFID.RFID.passDetInput(RFID.java:495)
at RFID.RFID.SaveActionPerformed(RFID.java:472)
at RFID.RFID.access$700(RFID.java:28)
at RFID.RFID$7.actionPerformed(RFID.java:259)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
    ...

これは、データ操作を行うための私のコードです。

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public void passDetInput(String tag, String fname, String lname, String pID, String ConNo, String phone) {

        String SQLcomm = "insert into pass_det (RFID_tag, fname, lname, ID_num, Conveyor_num, Phone_num) values (/'"+tag+"/',/'"+fname+"/',/'"+lname+"/',/'"+pID+"/',/'"+ConNo+"/',/'"+phone+"/')";

        java.sql.Connection con = null;
        Statement st = null;
        ResultSet rs = null;

        String url = "jdbc:mysql://localhost:3306/passenger_details";
        String user = "root";
        String password = "";

    try {
        con = DriverManager.getConnection(url, user, password);
        st = con.createStatement();
        rs = st.executeQuery(SQLcomm);

    } catch (SQLException ex) {
        Logger lgr = Logger.getLogger(RFID.class.getName());
        lgr.log(Level.SEVERE, ex.getMessage(), ex);
    }
}

ボタンを押すだけで機能が実行されます。

データベース名、テーブル名、要素名を確認しましたが、すべて正しいです。私のコードの間違いはどこにありますか?

前もって感謝します。

4

3 に答える 3

3

execute()orexecuteUpdate()メソッドを試してください。私が正しく覚えているなら、それは声明executeQueryのためだけです。SELECT

また、あなたは見るべきです:PreparedStatement

于 2012-04-16T07:33:28.737 に答える
2

使用する必要がありますst.executeUpdate(SQLcomm)

于 2012-04-16T07:33:54.983 に答える
0

executeUpload()あなたの問題を解決するだけです。

于 2012-04-16T09:18:19.110 に答える