JDBC数据库连接问题,提示说数据源(access)不正确,我已经在ODBC数据源中,配置好了,可一运行到这里就出错,请大侠们帮解决呀,星期五就要交啦!
错误提示是这些:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /newslist.jsp at line 2320: %>
21: <%
22:    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
23:    odbcconn = DriverManager.getConnection("jdbc:odbc:mydata"); 
24:    odbcstmt = odbcconn.createStatement(); 
25:    odbcQuery="Select * From sys_news order by news_id DESC"; 
26:    odbcrs=odbcstmt.executeQuery(odbcQuery); 
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause javax.servlet.ServletException: java.sql.SQLException: General error
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
org.apache.jsp.newslist_jsp._jspService(newslist_jsp.java:183)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.sql.SQLException: General error
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6987)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
java.sql.DriverManager.getConnection(DriverManager.java:525)
java.sql.DriverManager.getConnection(DriverManager.java:193)
org.apache.jsp.newslist_jsp._jspService(newslist_jsp.java:140)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.10源程序是这样的
<%@ include file="function/lang.jsp" %>
<%@ page import="java.sql.*"%>
<%@ include file="function/navigate.jsp" %>
<%@ include file="function/header.jsp" %>
<% out.println(ShowNavigate("news"));%>
<table width="784">
<%@page import ="java.util.*" 
import ="java.io.*" 
import="java.text.*" 
buffer="20kb" 
%>
<%! int all,i,m_count; 
String odbcQuery; 
Connection odbcconn; 
Statement odbcstmt; 
ResultSet odbcrs; 
ResultSetMetaData mymetadata; 
%>
<%
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
   odbcconn = DriverManager.getConnection("jdbc:odbc:mydata"); 
   odbcstmt = odbcconn.createStatement(); 
   odbcQuery="Select * From sys_news order by news_id DESC"; 
   odbcrs=odbcstmt.executeQuery(odbcQuery); 
   mymetadata=odbcrs.getMetaData();
   int columncount=mymetadata.getColumnCount(); 
while (odbcrs.next()) 

     int i; 
    out.print("<tr>");
    for (i=1;i<=columncount;i++) out.print("<td>Cloumn "+i+" is: "+odbcrs.getString(i)+"</td>"); 
    out.print("</tr>");
}
odbcrs.close(); 
odbcstmt.close(); 
odbcconn.close(); 
%>  
</table><%@ include file="function/footer.jsp" %>

解决方案 »

  1.   

    错在这句
    odbcconn = DriverManager.getConnection("jdbc:odbc:mydata"); 
    奇怪怎么没有用户,密码,数据库名的?
      

  2.   

    TO: Rachael1001(野谷子) 
    ODBC(数据源)  如果他建数据源的时候没设置用户名和密码, 那么连接字符里是不需要写的,而且也不需要写数据库名, 因为那是配置在ODBC里的,程序里写数据源名就可以了
      

  3.   

    用access数据库连接ODBC应当是这样写的:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/数据库名.mdb");
    Connection conn = DriverManager.getConnection(url,"","");
    Statement stmtNew=conn.createStatement() ;lz你好像写错了!
      

  4.   

    不会吧,通过ODBC数据源的就用不了吗?
      

  5.   

    用Access数据库连接ODBC应当是这样写的:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/数据库名.mdb");
    Connection conn = DriverManager.getConnection(url,"","");
    Statement stmtNew=conn.createStatement() ;楼上说得对
    lz你好像写错了!
      

  6.   

    JDBC_ODBC连接Access数据库,不需要设置数据源