将查询结果放入表格

yuyong81 2004-07-23 03:11:08
我想要将查询的结果放入表格,大家帮帮我看看错在哪!


Conn.java

package sqlconn;
import java.sql.*;
import java.lang.*;
import java.util.*;

public class Conn
{
String sDBDriver="oracle.jdbc.driver.OracleDriver";
String sConnStr ="jdbc:oracle:thin:@10.1.25.22:1521:jwjc;user=jwjc;password=wanyue";
Connection conn=null;
ResultSet rs=null;
public Conn()
{
try {
Class.forName(sDBDriver);
}
catch(ClassNotFoundException e)
{
System.out.println("无法建立数据库连接!:"+e.getMessage());
}
}

public void executeUpdate(String sql) throws Exception
{
sql= new String(sql.getBytes("GBK"),"ISO8859_1");
try
{
conn= DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex)
{
System.out.println("更新数据操作失败!"+ex.getMessage());
}
}

public ResultSet executeQuery(String sql) throws Exception
{
rs = null;
try
{
sql= new String(sql.getBytes("GBK"),"ISO8859_1");
conn= DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
conn.close();
stmt.close();
}
catch(SQLException ex)
{
System.out.println("执行查询出错!"+ex.getMessage());

}

return rs;
}
}


test.jsp


<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*;" %>
<jsp:useBean id="Conn" scope="page" class="sqlconn.Conn"/>
<html>
<head>
<title>
test
</title>
<link rel=stylesheet
href="JSP-Styles.css"
type="text/css"
</head>
<body>
<table>
<%
String sql= "select * from jwjc";
ResultSet rs=Conn.executeQuery(sql);
while(rs.next())
{
out.println("<tr><td>"+rs.getString(1)+"</td>"+"<td>"+rs.getString(2)+"</td>"+"<td>"+rs.getString(3)+"</td></tr>");
}
rs.close();
%>
</table>
</body>
</html>


运行后报错:"test.jsp": Error #: 202 : 'class' or 'interface' expected


...全文
186 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
真的李小龙 2004-07-23
  • 打赏
  • 举报
回复
那你先直接将COON类放在TEST。JSP中,即不用javabean,
最好不要用你那中形式,可以如下:
在打开数据库后;
直接取得
ResultSet rs=Conn.executeQuery(sql);
while(rs.next())
{
out.println("<tr><td>"+rs.getString(1)+"</td>"+"<td>"+rs.getString(2)+"</td>"+"<td>"+rs.getString(3)+"</td></tr>");
}
rs.close();
然后,关闭别的。
正确了后,一步步改回原样。

yuyong81 2004-07-23
  • 打赏
  • 举报
回复
可是我把 stmt.close();conn.close();注释掉了之后还是不行啊!
POwner 2004-07-23
  • 打赏
  • 举报
回复
仔细再写一次一定可以
POwner 2004-07-23
  • 打赏
  • 举报
回复
你应该写一个数据库连接函数getconn().
如果还不行的话,重新写一次反正也不多,也写加深一下吗?
wangwei8117 2004-07-23
  • 打赏
  • 举报
回复
你在返回记录集之前已经关闭了连接,这样返回的是null.可能是这个出错的吧!可以在调用之前判断是否要关闭记录集.可以在执行sql语句之前加上下面的语句:
if(rs==null)
{
rs.close();
stmt.close();
conn.close();
}
另外应该先关闭rs,然后是stmt,最后是conn
flyying 2004-07-23
  • 打赏
  • 举报
回复
在页面中调用方法不好。最好是把关闭都做在bean里。。
因为放在页面里的话,如果这个页显示一半我就按暂停。这个页里的关闭就不会执行。。
这样子长期下去是不行的。。。
jiankou2001 2004-07-23
  • 打赏
  • 举报
回复
statement关闭的时候,resultset也关闭了,所以executeQuery返回的resultset应该是null吧
这个是对的!!
在你的CONN.java中可以把
stmt.close();
conn.close();
放在一个方法里!!
当你用的时候调用这个方法去关闭!!
像你这样写的conn.java是不能用的!!
原因就是上面的第一句话!!
MARS.nEIL 2004-07-23
  • 打赏
  • 举报
回复
conn.java编译了吗?
jinsfree 2004-07-23
  • 打赏
  • 举报
回复
如果是tomcat,到work\Standalone\localhost\下面你对应的webapp目录看test$jsp.java(大概是这样的吧)看看那一句错在哪里?
黑马 2004-07-23
  • 打赏
  • 举报
回复
加一行
<%@ page import="java.lang.*;" %>
试试!

另外,我觉得
statement关闭的时候,resultset也关闭了,所以executeQuery返回的resultset应该是null吧
yuyong81 2004-07-23
  • 打赏
  • 举报
回复
各位给指点指点吧!
yuyong81 2004-07-23
  • 打赏
  • 举报
回复
应该怎么打开啊?我刚开始学,什么都不熟悉!
cyouyou 2004-07-23
  • 打赏
  • 举报
回复
打开test.jsp对应的servlet,看看202行是什么。

81,092

社区成员

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

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