带MySQL的java注册表单JavaFX在intellij中失败
我制作了一个javaFx注册表单,当我编译代码连接时,它与MySQL相连,但当我尝试创建一个新用户时,我得到了一个错误,不允许我将详细信息导入表中。我得到的错误是,没有为参数1指定值,即使我已经在MySQL中创建了Id列下面我写了我的代码并分享了我的表是什么样子的,最后是我得到的错误,所以有人能帮我解决这个问题吗
ea = new Stage();
AnchorPane pane = new AnchorPane();
TextField n = new TextField();
n.setPromptText("ENTER YOUR FIRST NAME");
n.setLayoutY(150);
n.setLayoutX(140);
pane.getChildren().add(n);
TextField s = new TextField();
s.setPromptText("ENTER YOU LAST NAME");
s.setLayoutY(200);
s.setLayoutX(140);
pane.getChildren().add(s);
TextField e = new TextField();
e.setPromptText("ENTER YOUR EMAIL");
e.setLayoutY(250);
e.setLayoutX(140);
pane.getChildren().add(e);
TextField u = new TextField();
u.setPromptText("ENTER YOUR USERNAME");
u.setLayoutY(300);
u.setLayoutX(140);
pane.getChildren().add(u);
TextField a = new TextField();
a.setPromptText("ENTER YOU PASSWORD");
a.setLayoutY(350);
a.setLayoutX(140);
pane.getChildren().add(a);
Button b = new Button();
b.setText("save");
b.setLayoutY(400);
b.setLayoutX(180);
b.setOnAction((ee)->{
// name = ErrorDetection.name(n.getText());
// age = ErrorDetection.inNumber(a.getText());
try
{
String fn = n.getText();
String ln = s.getText();
String em = e.getText();
String un = u.getText();
String ps = s.getText();
PreparedStatement stmt = con.prepareStatement("INSERT INTO userdatabasetable VALUES (?,?,?,?,?,?)");
stmt.setString(2, fn);
stmt.setString(3, ln);
stmt.setString(4, em);
stmt.setString(5, un);
stmt.setString(6, ps);
stmt.execute();
System.out.println("Insertion Complete");
stmt.close();
}
catch (SQLException er)
{
er.printStackTrace();
}
});
pane.getChildren().add(b);
scene = new Scene(pane,1280,720);
//e.setOnCloseRequest(confirmCloseEventHandler);
ea.setScene(scene);
ea.setResizable(false);
//e.getIcons().add(new Image("commonPictures/cra.png"));
ea.setTitle("CAR RENTING SYSTEM");
ea.show();
这就是SQL表的外观
----------------------------------------------------------------------------------------------------------------------------------------
| ID | FirstName | LastName | Email | UserName | PassWord |
-------------------------------------------------------------------------------------------------------------------------------------
| 1 | ahmed | ali | ahmed@gmail.com | ahmed99 | 1234 |
--------------------------------------------------------------------------------------------------------
这就是我得到的错误
"C:\Program Files\Java\jdk-14.0.1\bin\java.exe" --module-path "C:\Program Files\Java\javafx-sdk-14.0.1\lib" --add-modules=javafx.controls,javafx.fxml --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED -javaagent:C:\Users\YUSOF\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-1\202.6250.13\lib\idea_rt.jar=49308:C:\Users\YUSOF\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-1\202.6250.13\bin -Dfile.encoding=UTF-8 -classpath "P:\JAVA PROJECTS\CP III\JavaFX DataBase (JavaFX 8 Tutorial)\out\production\JavaFX DataBase (JavaFX 8 Tutorial);C:\Program Files\Java\javafx-sdk-14.0.1\lib\src.zip;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx-swt.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.web.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.base.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.fxml.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.media.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.swing.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.controls.jar;C:\Program Files\Java\javafx-sdk-14.0.1\lib\javafx.graphics.jar;P:\JAVA PROJECTS\CP III\mysql-connector-java-8.0.20.jar" sample.DataBaseProject1
DataBase Connected Successfully
java.sql.SQLException: No value specified for parameter 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:396)
at sample.GUIS.lambda$display$0(GUIS.java:83)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8885)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3890)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1885)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2618)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
# 1 楼答案
以下任何一项都应该有效:
或者
或者