Mysql 爪哇及;INSERT语句中的错误
我做错了什么,请帮我一下 名为renters的数据库 addressID是从名为Property的表中自动递增的,包含在名为Renter的表中,我正在执行java赋值 我连接到数据库,当我试图添加一个新的租用者时,它会给我这个错误 处理SQL时出错!java.sql.SQLException:字段“AddressID”没有默认值Mysql 爪哇及;INSERT语句中的错误,mysql,jakarta-ee,sql-insert,Mysql,Jakarta Ee,Sql Insert,我做错了什么,请帮我一下 名为renters的数据库 addressID是从名为Property的表中自动递增的,包含在名为Renter的表中,我正在执行java赋值 我连接到数据库,当我试图添加一个新的租用者时,它会给我这个错误 处理SQL时出错!java.sql.SQLException:字段“AddressID”没有默认值 数据库连接已终止 这是我的插入声明: String addFirstName = txtFirstName.getText(); String ad
数据库连接已终止 这是我的插入声明:
String addFirstName = txtFirstName.getText();
String addLastName = txtLastName.getText();
String addCellPhone = txtCellPhone.getText();
String addDepositPaid = txtDepositPaid.getText();
String addDepositAmtPaid = txtDepositAmtPaid.getText();
Statement lstatement = conn.createStatement();
ls_query = "INSERT INTO Renter (FirstName,LastName,CellPhone,DepositPaid,DepositAmtPaid) VALUES('" + addFirstName + "','" + addLastName + "','" + addCellPhone + "','" + addDepositPaid + "'," + addDepositAmtPaid + ")";
myStatement.executeUpdate(ls_query); JOptionPane.showMessageDialog(null, "New Renter Added");
) 使用Insert命令时添加AddressID。通常,必须插入每个非默认列和非自动增量列。使用Insert命令时添加AddressID。通常,必须插入每个非默认列和非自动增量列。使用Insert命令时添加AddressID。通常,必须插入每个非默认列和非自动增量列。使用Insert命令时添加AddressID。通常,必须插入每个非默认列和非自动增量列。查看数据库架构,可能列
地址ID
标记为非空。您试图插入一条记录,但没有为该列指定值,由于没有指定默认值,因此插入失败
因此,您可以修改模式并删除notnull
约束(如果有意义),或者为该列指定一个默认值,或者在插入时提供一个默认值
但在我看来,代码还有另一个主要的问题:当你把insert语句串在一起时,你就对SQL注入敞开了大门。解决方案很简单,使用PreparedStatement,可以找到一个很好的教程
请看,这是对SQL注入这一非常常见的问题的一个很好的第一次介绍,其中介绍了许多语言(包括Java)如何避免SQL注入的方法。一个伟大的资源 查看数据库架构,可能列AddressID
被标记为notnull
。您试图插入一条记录,但没有为该列指定值,由于没有指定默认值,因此插入失败
因此,您可以修改模式并删除notnull
约束(如果有意义),或者为该列指定一个默认值,或者在插入时提供一个默认值
但在我看来,代码还有另一个主要的问题:当你把insert语句串在一起时,你就对SQL注入敞开了大门。解决方案很简单,使用PreparedStatement,可以找到一个很好的教程
请看,这是对SQL注入这一非常常见的问题的一个很好的第一次介绍,其中介绍了许多语言(包括Java)如何避免SQL注入的方法。一个伟大的资源 查看数据库架构,可能列AddressID
被标记为notnull
。您试图插入一条记录,但没有为该列指定值,由于没有指定默认值,因此插入失败
因此,您可以修改模式并删除notnull
约束(如果有意义),或者为该列指定一个默认值,或者在插入时提供一个默认值
但在我看来,代码还有另一个主要的问题:当你把insert语句串在一起时,你就对SQL注入敞开了大门。解决方案很简单,使用PreparedStatement,可以找到一个很好的教程
请看,这是对SQL注入这一非常常见的问题的一个很好的第一次介绍,其中介绍了许多语言(包括Java)如何避免SQL注入的方法。一个伟大的资源 查看数据库架构,可能列AddressID
被标记为notnull
。您试图插入一条记录,但没有为该列指定值,由于没有指定默认值,因此插入失败
因此,您可以修改模式并删除notnull
约束(如果有意义),或者为该列指定一个默认值,或者在插入时提供一个默认值
但在我看来,代码还有另一个主要的问题:当你把insert语句串在一起时,你就对SQL注入敞开了大门。解决方案很简单,使用PreparedStatement,可以找到一个很好的教程
请看,这是对SQL注入这一非常常见的问题的一个很好的第一次介绍,其中介绍了许多语言(包括Java)如何避免SQL注入的方法。一个伟大的资源 试试看
ls_query=“将值(“+addFirstName+”、“+addLastName+”、“+addLastName+”、“+AddPhone+”、“+addDepositPaid+”、“+addDepositPaid+”、“+addDepositAmtPaid+”、“+addDepositAmtPaid+”、“0”)插入承租人(名字、姓氏、手机、手机、存费、存费、存费、存费、存费、存费)中代码>
编辑
我对java没有经验。但是看起来像是
的工作原理类似于C.
INSERT
语句通常以结尾或分隔换句话说,MySQL中的代码>表示从这一点开始执行
你能试试这个吗
ls_query=“将值(“+addFirstName+”、“+addLastName+”、“+addLastName+”、“+AddPhone+”、“+addDepositPaid+”、“+addDepositPaid+”、“+addDepositAmtPaid+”、“+addDepositAmtPaid+”、“0”)插入承租人(名字、姓氏、手机、手机、手机、存费、存费、存费、存费、存费、存费)中;”代码>试试看
ls_query=“将值(“+addFirstName+”、“+addLastName+”、“+addLastName+”、“+AddPhone+”、“+addDepositPaid+”、“+addDepositPaid+”、“+addDepositAmtPaid+”、“+addDepositAmtPaid+”、“0”)插入承租人(名字、姓氏、手机、手机、存费、存费、存费、存费、存费、存费)中代码>
编辑
我对java没有经验。但是看起来像是
的工作原理类似于C.
INSERT
语句通常以结尾或分隔换句话说,MySQL中的代码>表示从这一点开始执行
你能试试这个吗
ls\u query=“插入