-1

動作しない Update sql を取得しましたが、動作させることができないようです。どこで問題が発生するのかわかりません.Nullpointer例外が発生します。

これは私の KaldSQL クラスです

public ResultSet opdatereOrdre(Connection con, int BestillingsID, int Modtager){

    ResultSet opdatereOrdre = null;

    try {
        PreparedStatement stmt = con.prepareStatement("UPDATE varebestillinger set BestillingsStatus=1, ModtagetAf ="+Modtager+" where BestillingsID="+BestillingsID);
        opdatereOrdre = stmt.executeQuery();

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return opdatereOrdre;
}

これは私のHentbestillingsordreHandlerです

public void actionPerformed(ActionEvent e) {
                        System.out.println(hentordregistrer.BestillingsID);
                        try {

                            con = ks.connectNow();
                            ResultSet rs = ks.opdatereOrdre(con, hentordregistrer.BestillingsID, 1);

                        } catch (ClassNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        } catch (SQLException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }


                    }
                });

私が得るエラーは

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:412)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1794)
    at KaldSQL.opdatereOrdre(KaldSQL.java:126)
    at HentbestillingsordreHandler$1.actionPerformed(HentbestillingsordreHandler.java:120)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
4

2 に答える 2

2

これは NPE のようには見えません。executeQuery の代わりに executeUpdate を使用する必要があるようです。あなたはこれを試すかもしれません:

...
con.createStatement();
opdatereOrdre = stmt.executeUpdate("UPDATE varebestillinger set BestillingsStatus=1, ModtagetAf ="+Modtager+" where    BestillingsID="+BestillingsID);
...
于 2012-12-10T18:18:03.600 に答える
0

JDBC を使用してクエリを実行するには、主に 3 つの便利な方法があります。以下では、これらすべての方法について説明し、その方法をどこで使用するかを理解します。

1. boolean execute()

この PreparedStatement オブジェクト内の SQL ステートメントを実行します。これは、任意の種類の SQL ステートメントである可能性があります。

2. ResultSet executeQuery()

この PreparedStatement オブジェクトで SQL クエリを実行し、クエリによって生成された ResultSet オブジェクトを返します。

3 . int executeUpdate()

この PreparedStatement オブジェクト内の SQL ステートメントを実行します。これは、SQL INSERT、UPDATE、または DELETE ステートメントである必要があります。または、DDL ステートメントなど、何も返さない SQL ステートメント。

于 2012-12-10T18:23:42.437 に答える