Java 如果数据库中的ID可用,则更新,否则插入

Java 如果数据库中的ID可用,则更新,否则插入,java,sql-server-2008,jsp,Java,Sql Server 2008,Jsp,可能重复: 如果记录存在,我将尝试更新一个值,否则请在数据库中插入值。然而,这是行不通的。我已经编写了以下代码: 注意:(主持人,这是我几分钟前问的一个重复问题。我无法编辑上一个问题。如果给您带来不便,请道歉。请删除。) 因为EMP\u EMPLOYEE\u ID是一个整数字段,您需要使用: prpStatementCheck.setInt(1, Integer.parseInt(empId)); 此外,您还可以删除更新字符串此字段周围的引号: String sql= "UPDATE [U

可能重复:

如果记录存在,我将尝试更新一个值,否则请在数据库中插入值。然而,这是行不通的。我已经编写了以下代码:

注意:(主持人,这是我几分钟前问的一个重复问题。我无法编辑上一个问题。如果给您带来不便,请道歉。请删除。)


因为EMP\u EMPLOYEE\u ID是一个整数字段,您需要使用:

prpStatementCheck.setInt(1, Integer.parseInt(empId));
此外,您还可以删除更新字符串此字段周围的引号:

String sql= "UPDATE  [UAP_EMPLOYEE] SET EMP_EMPLOYEE_ID=" + empId + ", EMP_FNAME='" + fName+"', EMP_LNAME='" + lName + "' WHERE EMP_EMPLOYEE_ID= " + empId;
对于
prpstatement 1
,再次:

prpStatement1.setInt(1, Integer.parseInt(empId));

处理第26 23行的JSP页面/dynatree/dbconnection.JSP时发生异常:24:String sqlCheck=“Select*from[UAP].[dbo].[UAP_EMPLOYEE],其中EMP_EMPLOYEE_ID=”“+empId+”;25:PreparedStatementPrpstatementCheck=conn.prepareStatement(sqlCheck);26:prpStatementCheck.setString(1,empId);27:prpStatementCheck.setString(2,fName);28:prpStatementCheck.setString(3,lName);29:ResultSet rsCheck=prpStatementCheck.executeQuery();索引1超出范围。此错误表明仍在使用旧语法,即EMP_EMPLOYEE_ID周围的引号,没有PreparedStmt placeolder“?”等。即使按照您的建议更改了prpstation,也会出现相同的错误
在第26 23:24行处理JSP页面/dynatree/dbconnection.JSP时发生异常:String sqlCheck=“Select*from[UAP].[dbo].[UAP_EMPLOYEE],其中EMP_EMPLOYEE_ID=“+empId+”;25:PreparedStatementPrpstatementCheck=conn.prepareStatement(sqlCheck);26:prpStatementCheck.setInt(1,Integer.parseInt(empId));27:prpStatementCheck.setString(2,fName);28:prpStatementCheck.setString(3,lName);29:ResultSet rsCheck=prpStatementCheck.executeQuery();我更新了您推荐的已更改代码
prpStatement1.setInt(1, Integer.parseInt(empId));