我 的JSP代码如下,用JDBC方式在在eclipse中运行可是就是出现异常,返回的结果是SQL异常,请帮忙解决下。
用JDBC方式连接SQL sever2000,我创建的数据源testDatabase,学生表在SQLsever2000的pubs数据库中。
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% Connection con;
Statement sql;
ResultSet rs;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e)
{
out.print("类找不到!");
}
try
{
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","123");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM 学生表");
out.print("<Table Border>");
out.print("<TR><td colspan=8 align=center>用户数据</td></TR>");
out.print("<TR>");
out.print("<Td width=100 >"+"姓名");
out.print("<Td width=50 >"+"性别");
out.print("<Td width=100>"+"学号");
out.print("<Td width=50>"+"年龄");
out.print("<Td width=50>"+"专业");
out.print("<Td width=100>"+"职务");
out.print("<Td width=100>"+"系别");
out.print("<Td width=100>"+"班级");
out.print("<Td width=50>"+"家庭住址");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getLong(3)+"</TD>");
out.print("<TD >"+rs.getLong(4)+"</TD>");
out.print("<TD >"+rs.getString(5)+"</TD>");
out.print("<TD >"+rs.getString(6)+"</TD>");
out.print("<TD >"+rs.getString(7)+"</TD>");
out.print("<TD >"+rs.getLong(8)+"</TD>");
out.print("<TD >"+rs.getString(10)+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1)
{
out.print("SQL异常!");
}
%>
</BODY>
</HTML>
追问:不行 的啊
由于本人很少用Microsoft的sql server各个版本,因为Java开发者用sqlserver数据库的人真是非常少。整个公司的电脑里面也没有装,只有Oracle,mysql,firebird,sqlite。
下面这句设个断点调试一下。应该在这句就出问题了。无法获取连接。
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","123");
答案:你的把异常信息贴出来,这样 才能分析出具体问题出在那个地方了。
从你目前提供的信息来看,驱动是加载成功了。而你报SQL异常只能是
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","123");
可能没成功。
要确定是不是执行成功。
只要在 con=DriverManager.getConnection 下面输出一个System.out.println();
语句,不就能确定出到底是不是con连接出问题,是吧。
其他:首先应该在
catch(SQLException e1)
{
out.print("SQL异常!");
}
里面添加一行调试代码,比如
e1.printStackTrace();
这样可以在控制台或日志中跟踪是什么错误和错误行数。
可先确认数据库服务已经启动,数据库是否存在,指定用户名、密码、端口可以正常连接。
祝你好运! e1.printStackTrace(),查看错误信息,jdbc lib是否放入项目内? out.print("SQL异常!");
//后面追加:然后把结果发上来看看.可能是服务器端口1433没开
out.print(e.getMessage());
上一个:请问下面一段jsp代码用的是什么技术?
下一个:在jsp页面使用JSTL标签 或 struts标签后 就不能直接写代码不使用这些标签吗