Mysql 爪哇及;INSERT语句中的错误

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

我做错了什么,请帮我一下

名为renters的数据库

addressID是从名为Property的表中自动递增的,包含在名为Renter的表中,我正在执行java赋值

我连接到数据库,当我试图添加一个新的租用者时,它会给我这个错误

处理SQL时出错!java.sql.SQLException:字段“AddressID”没有默认值
数据库连接已终止

这是我的插入声明:

     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
语句通常以
结尾或分隔表示从这一点开始执行

你能试试这个吗

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
语句通常以
结尾或分隔表示从这一点开始执行

你能试试这个吗

ls\u query=“插入