Java 在MySQL数据库中插入行?

Java 在MySQL数据库中插入行?,java,sql,Java,Sql,守则: sql = "INSERT INTO `admin` (`id`,`username`,`password`,`access`) VALUES ('"+(numIds+1)+"','"+addedUsername+"','"+addedPassword+"','"+addedAccess+"');"; Statement statementAdd = (Statement) DBconnection.createStatement(); result = statementAdd.ex

守则:

sql = "INSERT INTO `admin` (`id`,`username`,`password`,`access`) VALUES ('"+(numIds+1)+"','"+addedUsername+"','"+addedPassword+"','"+addedAccess+"');";

Statement statementAdd = (Statement) DBconnection.createStatement();
result = statementAdd.executeUpdate(sql);
错误:

MySQLLogin.java:133: error: incompatible types
            result = statementAdd.executeUpdate(sql);
                                               ^
required: ResultSet
found:    int
1 error

有什么想法吗?

ExecuteUpdate返回整数您似乎正在将其分配给结果集

ExecuteUpdate返回整数您似乎正在将其分配给结果集

为此:

'"+(numIds+1)+"'
您可以尝试使用字符串进行数学运算,也可以将带有的字符串插入到数字字段中。鉴于你的错误信息,我怀疑是后者。正是单引号使其成为字符串。

为此:

'"+(numIds+1)+"'

您可以尝试使用字符串进行数学运算,也可以将带有的字符串插入到数字字段中。鉴于你的错误信息,我怀疑是后者。正是单引号使其成为字符串。

executeUpdate
返回受影响的行数(在您的情况下,它将返回插入的行数。但您正在尝试将返回的
int
分配给
结果集
对象

因此,只需将其更改为:

int insertedRows = statementAdd.executeUpdate(sql);

有关详细信息,请参见。

executeUpdate
返回受影响的行数(在您的情况下,它将返回插入的行数。但您正在尝试将返回的
int
分配给
结果集
对象

因此,只需将其更改为:

int insertedRows = statementAdd.executeUpdate(sql);

有关详细信息,请参阅。

请学习使用准备好的语句。您的代码将更干净、更健壮,并且不易受到SQL注入攻击。@user2202426:演示如何声明
result
ExecuteUpdate
返回int,而不是ResultSet。请学习使用准备好的语句。您的代码将更干净,更健壮,不易受到SQL注入攻击。@user2202426:演示如何声明
result
ExecuteUpdate
返回一个int,而不是ResultSet。那么我将如何更改它?int count=statementAdd.ExecuteUpdate(SQL);那么我将如何更改它?int count=statementAdd.ExecuteUpdate(SQL);