1.在classpath中要加入oracle/ora81/jdbc/lib/classes12.zip,不用解压缩
2.
/*使用servlet保存数据到数据库*/
<%@ page import=" java.io.*"%>
<%@ page import java.util.*"%>
<%@ page import java.sql.*"%>
<%@ page import javax.servlet.*"%>
<%@ page import javax.servlet.http.*"%>
<%
  try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:test";
//test是系统dsn名
Connection con=DriverManager.getConnection(url,"administrator","password");
Statement stmt=con.createStatement();
....
%>

解决方案 »

  1.   

    1.不用解压
    2.把classes12.zip改变后缀为jar放到tomcat/common/lib下,并添加到classpath中
    3.例子网上很多自己找一下吧
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <html>
    <body>
    <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    //orcl为你的数据库的SID
    String user="scott";
    String password="tiger";
    Connection conn= DriverManager.getConnection(url,user,password);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from test";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%>
    您的第二个字段内容为:<%=rs.getString(2)%>
    <%}%>
    <%out.print("数据库操作成功,恭喜你");%>
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>
      

  2.   

    to meixd(冷雨) 我说的是不用JDBC-ODBC。:)TO gundam_king(东方不败)我用的是TOMCAT4.0-M5这个服务器,但这个jakarta-tomcat-4.0目录下并没有common这个文件夹,当我把class12.jar  直接COPY到lib下却弄的我的TOMCAT都无法启动了。然后,我又试了把class12.jar放在j2sdk1.4.1_01目录的lib下,TOMCAT是能够启动,但我访问数据库时却还是报错!请帮忙再给点意见。谢谢
    报错信息如下:
    javax.servlet.ServletException: Unable to load class oracle.jdbc.driver.OracleDriver
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:481)
    at jsp.job.xuefen._0002fjsp_0002fjob_0002fxuefen_0002fdata_0002ejspdata_jsp_0._jspService(_0002fjsp_0002fjob_0002fxuefen_0002fdata_0002ejspdata_jsp_0.java:116)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:181)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:393)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:443)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2038)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:811)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:890)
    at java.lang.Thread.run(Thread.java:536)Root Cause:
    java.lang.ClassNotFoundException: Unable to load class oracle.jdbc.driver.OracleDriver
    at org.apache.jasper.servlet.JasperLoader.findClass(JasperLoader.java:223)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:147)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at jsp.job.xuefen._0002fjsp_0002fjob_0002fxuefen_0002fdata_0002ejspdata_jsp_0._jspService(_0002fjsp_0002fjob_0002fxuefen_0002fdata_0002ejspdata_jsp_0.java:60)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:181)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:393)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:443)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2038)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:811)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:890)
    at java.lang.Thread.run(Thread.java:536)
      

  3.   

    首先你要下载一个JDBC-oracle的桥,然后把他解压到tomcat的跟目录下,然后把oracld的 oracle/ora81/jdbc/lib/classes12.zip在classpath  指明路径,或者你直接把他复制到 tomcat\common\lib 肯定可以的啊,我昨天才弄好 的啊。
      

  4.   

    如果你放到lib下不好用请试者把class12.zip解压到classes目录下。 
     gundam_king(东方不败) 的用法应该没有什么问题的。
      

  5.   

    在classesPath中添加了吗,
    javax.servlet.ServletException: Unable to load class oracle.jdbc.driver.OracleDriver就是说找不到你的classes.jar文件
      

  6.   

    我的做法如下:
    1:把class12.jar文件copy到tomcat\lib
    2:classpath如下:
    .;C:\j2sdk1.4.1_01\lib\tools.jar;C:\j2sdk1.4.1_01\lib\dt.jar;C:\j2sdk1.4.1_01\bin;C:\jakarta-tomcat-4.0\lib\class12.jar;
    但现在一打开startup.bat,命令提示框就一闪而过!那么我错在什么地方呢?
    ***请大家注意的是我用的是oracle 81数据库,TOMCAT4.0-M5服务器,不知道是不是这跟东方兄说的解决方案有点冲突.
    ***还有一点我的tomcat下并没有common这个目录!请大家帮我顶顶也好啊,拜托啦!
      

  7.   

    你把启动tomcat的路径获得,可从开始的tomcat的start tomcat的属性中获得,然后打开运行"cmd",把刚才获得路径粘贴过去运行一下,看看问题到底出在哪里?这种是不会一闪而过的
      

  8.   

    没有common那就到%你的web目录%\WEB_INF\lib下,
      

  9.   

    问题出在我用的TOMCAT跟gundam_king(东方不败) 说的TOMCAT版本不同.所以我的TOMCAT下并没有COMMON这个目录.还有我用的是Oracle 81数据库,我在网上重新DOWN了一个名字为ojdbc14.jar的驱动,而不是用class12.jar驱动.问题就在这里:)希望大家有时间,讨论一下这个问题.