一张jsp页面里需要多次查询数据库进行显示,应该怎样连接数据库?
有一张index.jsp页面,需要显示五个列表.其中有一个表在left.jsp中实现,left.jsp包含在index.jsp页面中。五个列表的数据均从access数据库中查询获取,并动态输出到页面上.
我使用了JDBC-ODBC的数据库连接方式,数据源只有一个access文件.所有五个表的查询都共用了一个connection和statement以及resultset.执行查询,输出内容到页面,关闭这些对象,然后再执行下一个查询.反复填充页面.
但是这样生成的网页在tomcat下查看时,页面却显示不全.似乎输出内容的缓冲区被占满了.
请问这是什么原因?如何在一个页面执行多次数据查询和显示?
------解决方案--------------------建议用数据连接池技术,性能会提高
Access也支持的
建议你把数据操作部分的代码贴出来看看
------解决方案--------------------把数据库连接提取出来 然后用INCLUDE进去就不会用这个问题了
------解决方案--------------------每次都用ResultSet 不同的名字来作不用的ResultSet 结果集
然后每次用户 关闭
------解决方案--------------------我昨天弄的那个就是把数据库的连接提取出来 再include就OK了 其实我也想知道不这样弄又该如何
------解决方案--------------------用数据源,性能也好,你的index也面不是由多个也面组成的吗,
那你在不同页面执行操作就行,假如一个子也面需要操作多次数据库,connection可以公用,但是statement和ResultSet建议分开使用。
不过像楼主的代码风格,学习的还可以,如果是在项目中使用,就太那个。
建议你将操作数据的所有操作都封装在一个类里,然后也面直接传参数,调用相关的方法就ok了。
例如--省略了所有的html代码,只留java代码,:
<%@ page import= "com.Page,com.ModelList,com.PortalBO,com.ContentModel " %>
<%
ModelList contents = null;
Page prm = new Page();
contents = PortalBO.getContentList( "aa ", prm); //第一次操作数据库,该方法会调用数据库操作类的相关方法
%>
if (contents!=null) {
for (int i=0; i <contents.size(); i++) {
ContentModel content = (ContentModel)contents.get(i);
%>
。。。。。。
。。。。。。省略了也面标签
contents = PortalBO.getContentList( "bbbb ", prm);//第二次操作数据库
if (contents!=null) {
for (int i=0; i <contents.size(); i++) {
ContentModel content = (ContentModel)contents.get(i);
}
。。。。。。
。。。。。。省略了也面标签
第n次操数据库,都一样,此省略