在jsp中连接数据库出现了错误,请高手指点~~

colie_li 2011-09-22 07:23:56
简单的代码,连接数据库出现错误!
<%@page contentType ="text/html"%>
<%@page pageEncoding ="GB2312"%>
<%@page import ="java.sql.*"%>
<html>
<body>
<%
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:webData");
Statement smt =con.createStatement();
String id=new String(request.getParameter("user1"));
String sql ="select *from xuesheng where xuehao='" +id +"'";
ResultSet rs=smt.executeQuery(sql);
rs.next();
%>
<%=rs.getString(2) %>的信息如下:
专业:<%= rs.getString(3)%><br>
班级:<%=rs.getString(4) %>
</body>
</html>
</body>
</html>


错误提示:
org.apache.jasper.JasperException: An exception occurred processing JSP page /ceshi.jsp at line 9

6: <%
7: Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
8: Connection con =
9: DriverManager.getConnection("jdbc:odbc:webData");
10: Statement smt =con.createStatement();
11: String id=new String(request.getParameter("user1"));
12: String sql ="select *from xuesheng where xuehao='" +id +"'";


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.ceshi_jsp._jspService(ceshi_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



这是连接数据库的代码 ,哪错了请各位高手解答~~
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsy999 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 liyantianmin 的回复:]
简单的代码,连接数据库出现错误!
<%@page contentType ="text/html"%>
<%@page pageEncoding ="GB2312"%>
<%@page import ="java.sql.*"%>
<html>
<body>
<%
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
C……
[/Quote]
javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
没有配置好数据源,可通过控制面板ODBC进行配置
xiaojinhua1988 2011-09-22
  • 打赏
  • 举报
回复
没建数据源webData?
xfjoe 2011-09-22
  • 打赏
  • 举报
回复
还有,通配符*最好也换成具体的列名。
String sql ="select *from xuesheng where xuehao='" +id +"'";
改成 String sql ="select col1,col2,col3,col4 from xuesheng where xuehao='" +id +"'";

xfjoe 2011-09-22
  • 打赏
  • 举报
回复
如果rs.next()==false那么,rs.getString(2),rs.getString(3)...将会出错。
正确的写法是:
。。。。。。
String sql ="select *from xuesheng where xuehao='" +id +"'";

ResultSet rs=smt.executeQuery(sql);
while(rs.next()){ //或者if(rs.next()){})
%>
<%=rs.getString(2) %>的信息如下:
专业:<%= rs.getString(3)%><br>
班级:<%=rs.getString(4) %>
<%
}//end of while
%>
</body>
</html>
</body>
</html>

81,091

社区成员

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

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