麻烦看一下这段代码有什么问题(关于数据库连接的)

zzpping 2002-01-15 02:39:30
我已建立了odbc源forum,且测试正确, 为什么这段代码行不通?
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>

<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
out.print("Connect to Database error: " + e.getMessage());
}

try{
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
}
catch(SQLException e){
out.print(e.toString());
}
}
catch (Exception e) {}

%>
...全文
140 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzpping 2002-01-24
  • 打赏
  • 举报
回复
忙于期末考试, 好久没有上网了,看到大家热情解答,十分感谢!
zzpping 2002-01-19
  • 打赏
  • 举报
回复
users 表中的字段类型是 varchar 的,
该用什么方法取得呢?
National 2002-01-19
  • 打赏
  • 举报
回复
rs.getString(1)不能取2次,记住只能取一次,而且要按顺序。在odbc的通常版本均为如此

如:
<%
String tempstr = "";
while(rs.next())
{
tempstr = rs.getString(1);
%>
<A href="list.jsp?key=<%=tempstr%>"><%=tempstr%></A>
<%
}
rs.close();
stmt.close();
conn.close();
%>

try当中定义的变量离开了try就会失效--局部变量。 所以先把Connection conn在外面定义。


zzh54zzh 2002-01-15
  • 打赏
  • 举报
回复
问题可能是users表中的字段类型不是String的,
用rs.getInt()。
zzpping 2002-01-15
  • 打赏
  • 举报
回复
加分!!
zzpping 2002-01-15
  • 打赏
  • 举报
回复
zzh54zzh:
还有一个问题:

我在上面代码后面加上:

<%
while(rs.next())
{
%>
<A href="list.jsp?key=<%=rs.getString(1)%>"><%=rs.getString(1)%></A></TD></TR>
<%
}
rs.close();
stmt.close();
conn.close();
%>
不能通过,但是去掉 key=<%=rs.getString(1)%> 或改成 key=常数 就能通过, 为什么?
zzh54zzh 2002-01-15
  • 打赏
  • 举报
回复
我的理解conn在此处没有定义。可以把这几句加到
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
}

这样就省去那一句。
zzpping 2002-01-15
  • 打赏
  • 举报
回复
可以了
问一下为什么要加上那一句?
zzh54zzh 2002-01-15
  • 打赏
  • 举报
回复

Statement stmt=conn.createStatement();
String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL);
之前加一句
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
试一试
zzpping 2002-01-15
  • 打赏
  • 举报
回复
加了 Connection 后上段能通过,
可我后面加上代码
Statement stmt=conn.createStatement();

String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL);
后程序又有问题,

完整代码为:
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>

<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
out.print("Connect to Database error: " + e.getMessage());
}

try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
}
catch(SQLException e){
out.print(e.toString());
}
}
catch (Exception e) {}



Statement stmt=conn.createStatement();

String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL);

%>


出错提示为:
Internal Servlet Error:

org.apache.jasper.JasperException: Unable to compile class for JSPD:\tomcat\work\localhost_8080%2Fexamples\_0002fforum_00031_0002fmenu_0002ejspmenu_jsp_17.java:99: ?????????conn
Statement stmt=conn.createStatement();
为什么?

zzh54zzh 2002-01-15
  • 打赏
  • 举报
回复
代码:(******处)
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>

<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
out.print("Connect to Database error: " + e.getMessage());
}

try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa",""); //******
}
catch(SQLException e){
out.print(e.toString());
}
}
catch (Exception e) {}

%>
zzh54zzh 2002-01-15
  • 打赏
  • 举报
回复
为定义变量,加上 Connection conn;试一试。
zzpping 2002-01-15
  • 打赏
  • 举报
回复
出错提示为:
org.apache.jasper.JasperException: Unable to compile class for JSPD:\tomcat\work\localhost_8080%2Fexamples\_0002fforum_00031_0002fdatabase_0002ejspdatabase_jsp_0.java:89: ??????conn
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
^
1 ???

81,122

社区成员

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

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