1)先是执行更新
sql = "select * from sellrequire";
stmt1 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs1 = stmt1.executeQuery(sql)
while (rs1.next()){......rs1.updateRow();}
2)接下来是从该表中选部分记录,通过while循环依次插入到另一个表中。
sql = "select id,requiresimilarity from sellrequire order by requiresimilarity desc limit 0,similarrequirenum";
stmt2 = conn.createStatement() ;
rs2 = stmt2.executeQuery(sql); //得到最相似的卖方的ID和相似度
while (rs2.next()) {...}
我起先怀疑是不是要把先前的rs1关闭,但关闭了也还是不行,不知道是什么原因?
谢谢!
----------------解决方案--------------------------------------------------------
rs1 = stmt1.executeQuery(sql)这个好像不是更新吧~~~~
----------------解决方案--------------------------------------------------------
executeQuery是查询……
好像是executeUpdate?我忘记了……很久没用了……
----------------解决方案--------------------------------------------------------
然后我想对更新后的表进行查询,并将查询结果拷贝到另一个表中,也就是后一部分,执行不正常,感觉象没做一样。不知道是为什么?是不是不能对同一个表在没有关闭连接的情况下,不能进行连续的查询操作?
----------------解决方案--------------------------------------------------------
是不是两段代码逻辑上有问题啊
单独执行后一段代码测试一下 看是否能达到插入的功能
----------------解决方案--------------------------------------------------------
我在没有预期执行的那段代码单独出来,问题找到了,是SQL语句错了,我应用将一个字符串和一个变量相加的,结果直
接写到字符串里了,所以执行就不对了。
正确的应该是这样的:
sql = "select id,requiresimilarity from buyrequire order by requiresimilarity desc limit 0,"+similarrequirenum;
但我写成了:
sql = "select id,requiresimilarity from buyrequire order by requiresimilarity desc limit 0,similarrequirenum";
其中similarrequirenum是变量名。
----------------解决方案--------------------------------------------------------
分析一下前后代码,运作流程 这个内容不显示,除非你的浏览器不支持
----------------解决方案--------------------------------------------------------