我在动态Java项目中遇到此错误。
java.sql.SQLException:参数索引超出范围(39>参数数量,即38)。
我检查了数据库列数是38,“?” charachter计数是38,字段计数是38,myStmt.set计数是38,但仍然出现此错误。我正在尝试在mysql中编写3个表,我想我的方法是错误的,请您能帮我吗?
(?<![A-Z0-9]) # negative lookbehind, make sure we haven't alphanum before
[A-Z0-9]{7} # 7 alphanumerics
(?![A-Z0-9]) # negative lookahead, make sure we haven't alphanum after
答案 0 :(得分:1)
您的代码包含该行
myStmt2 = myConn2.prepareStatement(sql);
我想你想写
myStmt2 = myConn2.prepareStatement(sql2); // note: sql2 not sql
否则,您将再次准备第一个SQL语句,并将参数设置为第二个。
同一件事发生在
myStmt3 = myConn3.prepareStatement(sql);
您要在这里使用sql3
而不是sql
。
尝试将每个SQL操作提取到单独的方法中。一方面,这将减少方法的大小。另外,您会很快发现错误:第二条方法中第一条语句的SQL字符串超出范围。另外,我不确定您在用什么代码编写代码:任何值得使用的IDE都会警告您变量sql2
和sql3
未使用。