//连接数据库
Class.forName("oracle.jdbc.driver.OracleDriver");
//得到连接
Connection ct=null;
ct=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.188:1521:orcl","mydate","mydate");Tomcat报错:
java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriver
.......
at java.lang.Thread.run<Unknow Source>
说明:
我用的是公司的数据库,用户mydate,密码mydate,登录pl/sql正常,数据库URL也正确,因为我在EOS就是这设置,而且可以正常使用.为何自己用JCreater开发就出问题了
端口8080,代码不连数据库是正常运行的,连数据库时出问题了。

解决方案 »

  1.   

    java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriveroracle驱动在哪?那个叫class12.jar的包呢?
      

  2.   

    驱动没找到 有个oracle驱动包 我用的是ojdbc14.jar 你找找
      

  3.   

    java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriver
    ,从错误提示都能够看出来,缺少数据库的驱动包!!
      

  4.   

    我加进去了驱动包,前边的错误没有了,又出现以下错误:
    java.sql.SQLException:ORA-00923未找到要求的FROM关键字我的代码://用户验证servletpackage com.hzy;import java.sql.*;
    import javax.servlet.http.*;
    import java.io.*;public class LoginCl extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
    //业务逻辑
    Connection ct=null;
    Statement sm=null;
    ResultSet rs=null;

    try{
    //接收用户名和密码
    String u=req.getParameter("username");
    String p=req.getParameter("passwd");

    //连接数据库
    Class.forName("oracle.jdbc.driver.OracleDriver");
    //得到连接
    ct=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.181:1521:orcl","sdsb","sdsb");
    //创建Statement
    sm=ct.createStatement();
    rs=sm.executeQuery("select top 1 * from myemp where empname='"+u+"'");

    //验证
    if(rs.next()){
    //合法
    //将验证成功的用户信息写入session
    //1、得到session空间
    HttpSession hs=req.getSession(true);
    //修改session的存在时间
    hs.setMaxInactiveInterval(20);
    //跳转到welcom,同时把页面上获得的用户名通过uname传递给welcom页面
    hs.setAttribute("pass","ok");
    res.sendRedirect("welcom?uname="+u+"&upass="+p);
    }
    else{
    //不合法
    //跳转
    res.sendRedirect("login");//写你要到的servlet的那个URL

    }

    }
    catch(Exception ex){
    ex.printStackTrace();
    }finally{
    //finally语句是不管程序会不会抛出异常,都会执行的代码
    try{
    if(rs!=null){
    rs.close();
    }
    if(sm!=null){
    sm.close();
    }
    if(ct!=null){
    ct.close();
    }
    }
    catch(Exception ex){
    ex.printStackTrace();
    }
    }
    }
    public void doPost(HttpServletRequest req,HttpServletResponse res){
    this.doGet(req,res);
    }

    }
      

  5.   

    下载FortuneJ,把里面FLibrary/lib/jdbc里面Oracle 11GR2 JDBC引用到你的项目里面
    或放置到Program Files\Apache Software Foundation\Tomcat 7.0\lib下面FortuneJ参考下载地址www.cnblogs.com/mail-ricklee
      

  6.   

    oracle 不支持top关键字
    改为select  * from  (select * from myemp where empname=? order by id) where rownum<=2 asc
      

  7.   

    select top 1 * from myemp 你的sql语句 在 oracle中不能这样写
    你想拿到第一个记录吗?
    可以用
    first_value() over()或者
    row_number() over()取第一行
      

  8.   

    我去掉了 top1  Tomcat没有错误,
    但是当我输入正确的empname,还是不能跳转到welcom页面。而是跳转到login页面(如果记录为空时,返回login),请问是什么原因呢?Tomcat没有报错,JCreater编译无错误
      

  9.   

    现在的语句:
    rs=sm.executeQuery("select top 1 * from myemp where empname='"+u+"'");
    我想问一下,我这个书写格式没问题吧?
    现在究竟有没有成功连到数据库
    如果连上数据库了,我输入了正确的empname应该能查到结果呀?
      

  10.   

    楼上不是说了吗,oracle不支持top关键字
      

  11.   

    对不起,我粘错了
    现在的语句是:"select * from myemp where empname='"+u+"'"
      

  12.   

    你搞笑么。TOP是SQL SERVER的我晕了~
      

  13.   

    这个我真不知道,今天学习了,谢谢大家。
    现在我没加top1,改成:"select * from myemp where empname='"+u+"'"
    运行速度好像慢了些,应该是能连上数据库(个人想法),但是当我输入正确的empname,还是不能跳转到
      

  14.   

    请用绑定变量不然来个SQL注入,你就挂了。。
    如果我的用户名叫   abc or 1=1..你怎么办
      

  15.   

    scare111
    说的真好,因为我学的这教程上现在好像也是马上要讲这个SQL注入,谢谢了!!刚才我是这样测试的:executeQuery("select * from myemp where empname='郭雪红'")
    if(rs.next()){
    PrintWriter pw=res.getWriter();
    pw.println("lianshangshujukule!!");
    }
    其中'郭雪红'是myemp中已有的empname
    能输出lianshangshujukule!!
    说明连接数据库是正确的
    那么问题就在下面这段代码中(我在条件中加入了页面变量):
    rs=sm.executeQuery("select * from myemp where empname='"+u+"'");
    //验证
    if(rs.next()){
    //合法
    //将验证成功的用户信息写入session
    //1、得到session空间
    HttpSession hs=req.getSession(true);
    //修改session的存在时间
    hs.setMaxInactiveInterval(20);
    //跳转到welcom,同时把页面上获得的用户名通过uname传递给welcom页面
    hs.setAttribute("pass","ok");
    res.sendRedirect("welcom?uname="+u+"&upass="+p);
    }