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);