我不知道为什么executeQuery方法会引发异常,我尝试在mysql上运行语句,并且该语句正常运行。

这是代码:

        queryInserimento = "INSERT INTO operatore (Cognome, Email, Nome, Sede, Telefono, Username,Password) "
                + "VALUES ('" + cognome + "','" + email + "','" + nome + "','" + sede + "','" + telefono + "','" + username + "','"+cryptedPassword+"');";
        System.out.println(queryInserimento);
        try {
            Connection conn=MySQLDaoFactory.initConnection();
            PreparedStatement statement=conn.prepareStatement(queryInserimento);
            try {
                statement.executeUpdate() //Here is the problem
            }
            catch (SQLException e) {
                throw new ExecuteQueryException();  //throws this...
            }


这是跟踪:


  java.lang.reflect.InvocationTargetException
      在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
      在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
      在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在java.lang.reflect.Method.invoke(未知来源)
      在business.BusinessDelegate.handleRequest(BusinessDelegate.java:35)
      在presentation.command.InserisciOperatore.Execute(InserisciOperatore.java:25)
      在presentation.ApplicationController.handleRequest(ApplicationController.java:183)
      在presentation.FrontController.handleRequest(FrontController.java:35)
      在presentation.ui.controller.NuovoOpController.conferma(NuovoOpController.java:85)
      在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
      在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
      在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在java.lang.reflect.Method.invoke(未知来源)
      在sun.reflect.misc.Trampoline.invoke(未知来源)
      在sun.reflect.GeneratedMethodAccessor1.invoke(未知来源)
      在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在java.lang.reflect.Method.invoke(未知来源)
      在sun.reflect.misc.MethodUtil.invoke(未知来源)
      在javafx.fxml.FXMLLoader $ MethodHandler.invoke(未知来源)
      在javafx.fxml.FXMLLoader $ ControllerMethodEventHandler.handle(未知源)
      在com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(未知来源)
      在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(未知来源)
      在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(未知来源)
      com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent处(未知源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.EventUtil.fireEventImpl(未知来源)
      在com.sun.javafx.event.EventUtil.fireEvent(未知来源)
      在javafx.event.Event.fireEvent(未知来源)
      在javafx.scene.Node.fireEvent中(未知来源)
      在javafx.scene.control.Button.fire(未知来源)
      在com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(未知来源)
      在com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle(未知来源)
      在com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle(未知来源)
      com.sun.javafx.event.CompositeEventHandler $ NormalEventHandlerRecord.handleBubblingEvent处(未知源)
      在com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(未知来源)
      在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(未知来源)
      在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(未知来源)
      com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent处(未知源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent中(未知来源)
      在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(未知来源)
      在com.sun.javafx.event.EventUtil.fireEventImpl(未知来源)
      在com.sun.javafx.event.EventUtil.fireEvent(未知来源)
      在javafx.event.Event.fireEvent(未知来源)
      在javafx.scene.Scene $ MouseHandler.process(未知来源)
      在javafx.scene.Scene $ MouseHandler.access $ 1500(未知源)
      在javafx.scene.Scene.impl_processMouseEvent(未知来源)
      在javafx.scene.Scene $ ScenePeerListener.mouseEvent(未知来源)
      位于com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run(未知源)
      位于com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run(未知源)
      在java.security.AccessController.doPrivileged(本机方法)
      在com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda $ handleMouseEvent $ 354(未知来源)
      在com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(未知来源)
      在com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent中(未知来源)
      在com.sun.glass.ui.View.handleMouseEvent(未知来源)
      在com.sun.glass.ui.View.notifyMouse(未知来源)
      在com.sun.glass.ui.win.WinApplication._runLoop(本机方法)
      在com.sun.glass.ui.win.WinApplication.lambda $ null $ 148(未知来源)
      在java.lang.Thread.run(未知来源)
  造成原因:dao.mySQL.ExecuteQueryException
      在dao.mySQL.MySQLOperatoreDAO.inserisciOperatore(MySQLOperatoreDAO.java:54)
      at business.entity.OperatoreBusiness.inserisciOperatore(OperatoreBusiness.java:48)
      在业务上.GestisciOperatore.inserisciOperatore(GestisciOperatore.java:58)
      ...更多67

最佳答案

如果要检查statement.executeUpdate()是否为1,则需要将其放在if语句中。

try {
    if (statement.executeUpdate() == 1) {
        // do something
    }
    else {
        // do something else
    }
}
catch (SQLException e) {
    throw new ExecuteQueryException();  //throws this...
}

关于java - 语句executeQuery异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35660294/

10-12 00:25
查看更多