作者TonyQ (骨头)
看板Web_Design
标题Re: [问题] Jsp RecordSet问题
时间Tue Oct 9 16:11:35 2007
※ 引述《forkome (丁丁是个人材)》之铭言:
: Connection conn= DriverManager.getConnection(url,user,password);
: Statement stmt = conn.createStatement();
: String sql1 = "select distinct topic from school";
: ResultSet rs1 = stmt.executeQuery(sql1);
: while(rs1.next()){
: sql2="select dept from school where topic='"+rs1.getString(1)+"'";
: rs2 = stmt.executeQuery(sql2);
: out.println(rs2.getString(1));
: rs2.close();
^^^^^^^^^^^
我觉得这里应该是最大的问题
可能跟Connection有关系 , 不过不大确定
: }
: 错误讯息java.sql.SQLException: [Microsoft
: ][SQLServer 2000 Driver for JDBC]Object has been closed.
: 难道stmt不能重覆使用吗?还是另有原因
: 小弟把rs1的值当作rs2的搜寻条件,结果不能用
我会建议你写成 join形式 或者用别种方式下sql,
select的成本很高,写成这样当资料量很大的时候很伤。
你的原意应该是要针对每间学校的topic取出dept吧
其实你可以写成
"select dept from school order by topic " (group by应该也可以...)
这样同一个topic的dept就会排在一起了
一次也可以处理比较多的资料
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.no-ip.info
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.59.247
1F:推 forkome:大概知道原因了statement只能执行一次sql 10/09 16:31
2F:→ forkome:没用join很伤,但里面资料要多次重覆使用,而不是只呈现 10/09 16:31
3F:→ forkome:看到一些文章说要采用MVC架构,还在研究中 10/09 16:32
4F:→ forkome:谢谢TonyQ的回答 10/09 16:33
5F:→ TonyQ:要多次重复使用就存起来用~ 10/09 16:51