将数据保存到 mysql 工作台时出现错误
i have a error when save data in to mysql work bench
这是我的 MYSQL 数据库:enter image description here
enter image description here
这是代码
enter image description here
enter image description here
和错误信息:
运行:
thg 12 03, 2020 9:45:51 CH program.StudentModify 插入
严重:无
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'Number) values('sdsdsd','Male',23,'sdsdsd','232323') 附近使用的正确语法' 在第 1 行
在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
在 java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
在 com.mysql.jdbc.Util.handleNewInstance(Util.java:403)
在 com.mysql.jdbc.Util.getInstance(Util.java:386)
在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1915)
在 com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1254)
在 program.StudentModify.插入(StudentModify.java:79)
在 program.StudentJFrame.btSaveActionPerformed(StudentJFrame.java:260)
在 program.StudentJFrame$3.actionPerformed(StudentJFrame.java:111)
在 java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
在 java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
在 java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
在 java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
在 java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
在 java.desktop/java.awt.Component.processMouseEvent(Component.java:6636)
在 java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
在 java.desktop/java.awt.Component.processEvent(Component.java:6401)
在 java.desktop/java.awt.Container.processEvent(Container.java:2263)
在 java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012)
在 java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
在 java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
在 java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
在 java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
在 java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
在 java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
在 java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2764)
在 java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
在 java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
在 java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
在 java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
在 java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
在 java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
在 java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
在 java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
在 java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
在 java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
在 java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
在 java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
在 java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
在 java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
在 java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
也许你应该像 PhoneNumber 这样用一个词写 'Phone Number'。
或者写 Phone Number
在插入语句中的单词周围使用反引号 - 在创建语句中,您在字段名称周围使用了反引号。
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'Number)
values('sdsdsd','Male',23,'sdsdsd','232323')'
'数字大概是'Phone Number'的第二部分.
您的 SQL 查询中有 Phone 个号码。
在您的代码中,每次使用该方法时您都会打开和关闭连接
您可以移动连接和关闭单独的方法
例如:
public Connection connect() throws SQLException {
Connection connection = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(URL,USER,PASSWORD);
return connection;
}
public void disconnect(Connection connection) throws SQLException {
connection.close();
}
也许你可以尝试代替:
String url = "jdbc:mysql://localhost:3306/studentmanagement?&useSSL=false"
尝试:
String url = "jdbc:mysql://localhost:3306/studentmanagement?autoReconnet=true&useSSL=false"
这是我的 MYSQL 数据库:enter image description here
enter image description here
这是代码 enter image description here
enter image description here
和错误信息: 运行: thg 12 03, 2020 9:45:51 CH program.StudentModify 插入 严重:无 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'Number) values('sdsdsd','Male',23,'sdsdsd','232323') 附近使用的正确语法' 在第 1 行 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) 在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:403) 在 com.mysql.jdbc.Util.getInstance(Util.java:386) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) 在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1915) 在 com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1254) 在 program.StudentModify.插入(StudentModify.java:79) 在 program.StudentJFrame.btSaveActionPerformed(StudentJFrame.java:260) 在 program.StudentJFrame$3.actionPerformed(StudentJFrame.java:111) 在 java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) 在 java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) 在 java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) 在 java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) 在 java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) 在 java.desktop/java.awt.Component.processMouseEvent(Component.java:6636) 在 java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) 在 java.desktop/java.awt.Component.processEvent(Component.java:6401) 在 java.desktop/java.awt.Container.processEvent(Container.java:2263) 在 java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012) 在 java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) 在 java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) 在 java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) 在 java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) 在 java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) 在 java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) 在 java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2764) 在 java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) 在 java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) 在 java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) 在 java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:391) 在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) 在 java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) 在 java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:391) 在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) 在 java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 在 java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 在 java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) 在 java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 在 java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
也许你应该像 PhoneNumber 这样用一个词写 'Phone Number'。
或者写 Phone Number
在插入语句中的单词周围使用反引号 - 在创建语句中,您在字段名称周围使用了反引号。
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'Number)
values('sdsdsd','Male',23,'sdsdsd','232323')'
'数字大概是'Phone Number'的第二部分.
您的 SQL 查询中有 Phone 个号码。
在您的代码中,每次使用该方法时您都会打开和关闭连接 您可以移动连接和关闭单独的方法
例如:
public Connection connect() throws SQLException {
Connection connection = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(URL,USER,PASSWORD);
return connection;
}
public void disconnect(Connection connection) throws SQLException {
connection.close();
}
也许你可以尝试代替:
String url = "jdbc:mysql://localhost:3306/studentmanagement?&useSSL=false"
尝试:
String url = "jdbc:mysql://localhost:3306/studentmanagement?autoReconnet=true&useSSL=false"