簡體   English   中英

在Java中執行MySQL查詢時出錯

[英]Error in executing MySQL query in Java

我正在嘗試將數據插入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);
    }
}

並通過按鈕執行該功能。

我已經檢查了數據庫名稱,表名稱和元素名稱,它們都是正確的。 我的代碼中的錯誤在哪里?

提前致謝。

嘗試execute()executeUpdate()方法。 如果我沒記錯的話, executeQuery僅用於SELECT語句。

您還應該看一下: PreparedStatement

您應該使用st.executeUpdate(SQLcomm) ;

只有executeUpload()可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM