java servlet while循环使用mysql插入缩短
我正在用selenium制作一个Javaservlet,它循环一定次数并插入到数据库中。但循环在插入1次后停止java servlet while循环使用mysql插入缩短,java,mysql,servlets,selenium-webdriver,Java,Mysql,Servlets,Selenium Webdriver,我正在用selenium制作一个Javaservlet,它循环一定次数并插入到数据库中。但循环在插入1次后停止 while(i < x) { i++; if(rs.next()) { String st = rs.getString("st"); String ACCOUNT = rs.get
while(i < x)
{
i++;
if(rs.next())
{
String st = rs.getString("st");
String ACCOUNT = rs.getString("User");
String link_URL = rs.getString("Link");
String objectKey = rs.getString("Key");
String DESC = "File description.";
String INF_DESC = " this is an unsual from";
WebElement acc = wait.until(ExpectedConditions.elementToBeClickable(By.id("web_account_"+i)));
WebElement desc = driver.findElement(By.id("web_original_"+i));
WebElement inf_desc = driver.findElement(By.id("web_se_"+i));
WebElement _url = driver.findElement(By.id("web_url_"+i));
List<WebElement> link_in_ = driver.findElements(By.name("web_target_"+i));
WebElement link_in__1 = driver.findElement(By.id("web_website_direct_"+i));
WebElement link_in__conf = driver.findElement(By.id("web_website_direct_confirm_"+i));
WebElement report_another = driver.findElement(By.id("more_link"));
acc.sendKeys(ACCOUNT);
top("Account: ", ACCOUNT, complete, response, 1);
desc.sendKeys(DESC);
top("Description: ", DESC, complete, response, 1);
inf_desc.sendKeys(INF_DESC);
top("Inf_Des: ", INF_DESC, complete, response, 1);
_url.sendKeys(link_URL);
top("URL: ", link_URL, complete, response, 1);
for(WebElement RadioOption : link_in_)
{
//if(RadioOption.getAttribute("value").equals("website"))
if("website".equals(RadioOption.getAttribute("value")))
RadioOption.click();
top("Radio in URL: ", clicked, complete, response, 1);
}
link_in_1.click();
top("Radio in URL2: ", clicked, complete, response, 1);
link_in_conf.click();
top("Radio URL3 Conf: ", clicked, complete, response, 1);
//store current webs in a temp table
st.executeUpdate("INSERT INTO temp_webs (ObjectKey) VALUES ('" + objectKey + "')");
if(i != x)
{
report_another.click();
writer.println("<tr><td>Report Another:</td><td colspan=\"2\">Click</td><td>Complete</td></tr>");
}
}
else
{
writer.println("There was an error in the MySQL query! ID:26");
}
}
while(i
我知道问题在于st.executeUpdate(“INSERT-INTO-temp_-webs(ObjectKey)值(““+ObjectKey+”)”)代码>正在阻止循环继续。当我删除这行代码时,它工作得非常好
更新
我已经确认查询有效,并且一切都是正确的。我的问题是它只插入一条记录,然后退出while循环
更新两个
在try-catch中使用查询后,我遇到了一个新错误
结果集关闭后不允许操作
结果集似乎在完成循环之前关闭。不确定是什么原因造成的。解决方法是创建一个新的语句连接,并在循环中使用新的语句连接。它停止的原因是因为连接在第一次循环后被关闭。发生了错误吗?关于st.executeUpdate(“插入临时web(ObjectKey)值(“+Key+”)”)
,是否确定表中的列名为ObjectKey
,变量Key
包含什么?Key
的值是多少?这里正在进行一些SQL注入。是的,我100%相信查询是正确的。我在mysql和servlet中进行了测试。但这一切的结合导致循环停止。该键是数据库中放入临时表的主键。看起来是这样的a11623a5f98ede8da726a6cda6f1f408543f3da
有什么想法吗?我在这里撞到了一堵砖墙。无论我做什么,我都无法让查询完成循环。