java web中sql批查询问题!(菜鸟提问)

lxpandsq 2012-03-13 04:43:44
无结果集的批处理可以如此操作!
psStatement.setString(1,"a");
psStatement.setString(2,"b");
psStatement.addBatch();
int[] uCounts1=psStatement.executeBatch();

我想请问的是,如果是有结果的改怎么处理了?
比如,我数据库中有一个主键是id值为1,2,3,4,5,6,7,8,9······
现在jsp页面传过来一个数组,int i[]={2,3,4,5}
我以前是用for循环一条一条的执行查询然后将结果,存入一个二维数组里面,效率很低!

当然如果我知道i的个数也可以使用sql语句+or来执行。但是如果传过来的值的个数未知,批处理能实现吗?
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpandsq 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qq737604771 的回复:]
你可以用in 把你的传过来的数组拼成 (2,3,4,5..) 再就是sql 如 select * from test where id in (2,3,4,5,6) 只是已知的结果 就是a已经知道了。 未知的建议用exists 比较好点 性能也比in高好多。
[/Quote]
嗯,这样可以搞定了,在问一个小问题:
是不是写程序的时候,原则上尽量避免多记录查询,但是向添加或删除之类的确没有这个问题了?
lxpandsq 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dryzeng 的回复:]
写个for循环遍历一下数据,不就行了吗?
[/Quote]

可以,但是效率·······
qq737604771 2012-03-14
  • 打赏
  • 举报
回复
不是的。 多查询一定有的 程序上不是多避免,而是在sql语句上多优化, 比如你要查询大量数据 (几千万条) 你不建索引 , 那还不是查到明年去了。 呵呵。
qq737604771 2012-03-13
  • 打赏
  • 举报
回复
你可以用in 把你的传过来的数组拼成 (2,3,4,5..) 再就是sql 如 select * from test where id in (2,3,4,5,6) 只是已知的结果 就是a已经知道了。 未知的建议用exists 比较好点 性能也比in高好多。
dryZeng 2012-03-13
  • 打赏
  • 举报
回复
写个for循环遍历一下数据,不就行了吗?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧