牛人們,帮个忙吧,实在是不知道怎么搞的。
org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:301)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:49)
at org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:24)
at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:271)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1079)
at dao.UserDao.main(UserDao.java:14)
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298)
... 7 more

解决方案 »

  1.   

    Caused by: java.sql.SQLException: No suitable driver 
    你的驱动程序错了
      

  2.   

    谢谢回答!!
    class12.jar  和  ojdbc.jar 都用过了  就是不好使 同事在他机器上写就好使,用他的jar包  还是不好使
      

  3.   

    补充上一条哦。。是ojdbc14.jar
      

  4.   

    at dao.UserDao.main(UserDao.java:14) 
    Caused by: java.sql.SQLException: No suitable driver 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 不是提示你了嘛!   dao.UserDao.main(UserDao.java:14) 你这个方法里面的驱动有问题 你去仔细检查一下
      

  5.   

    at dao.UserDao.main(UserDao.java:14) 
    Caused by: java.sql.SQLException: No suitable driver 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 不是提示你了嘛!   dao.UserDao.main(UserDao.java:14) 你这个方法里面的驱动有问题 你去仔细检查一下
      

  6.   

    配置文件写错了吧,或者配置文件没有编译到class目录下。总之从配置文件连接数据库入手。
      

  7.   

    之前配置 hibernate 连数据库的时候连不上,最后用简单的jdbc  都连不上。。很无奈呀
    package dao;import info.UserInfo;import org.hibernate.*;
    import org.hibernate.cfg.Configuration;public class UserDao {
    public static void main(String[] args){
    try {
                SessionFactory sf = new Configuration().configure().buildSessionFactory();
                System.out.println("_____");
                Session session = sf.openSession();
                Transaction tx = session.beginTransaction();
                System.out.println("_____");
                UserInfo user = new UserInfo();
                user.setUsername("1111");
                user.setUserpass("1111");
                session.save(user);
                tx.commit();
                session.close();
        } catch (HibernateException e) {
                e.printStackTrace();
        }
    }
    }
      

  8.   

    还是你hibernate配置文件没写对吧 既然手写的也有问题 也可能是你写的驱动有问题 有没有字母 譬如O和数字0写错了等简单的笔误
      

  9.   

    谢谢!但用一下代码应该不会有什么问题才对呀但还是提示  驱动不对
    package dao;import info.UserInfo;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    public class OrclJdbc {
    public static void main(String[] argv){
    List<UserInfo> list = new ArrayList<UserInfo>();
    try {
    Class c=oracle.jdbc.driver.OracleDriver.class;
    Connection conn = DriverManager.getConnection("jdbc:oralce:@192.168.28.98:1521:orcl","baby","baby");
    Statement stm = conn.createStatement();
    ResultSet rs = stm.executeQuery("select * from userinfo");
    while(rs.next()){
    UserInfo p = new UserInfo();
    p.setUsername(rs.getString("username"));
    p.setId(rs.getLong("id"));
    System.out.println("__"+rs.getString("username")+"__");
    list.add(p);
    }
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
      

  10.   

    Class.ForName()
    没有这个吗 
    我没用过Oracle的驱动 但是我觉得还是少了点什么 
    Class c=oracle.jdbc.driver.OracleDriver.class;
    只这样写 不少驱动吗
      

  11.   

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection("jdbc:odbc:DB1","sa","");我都好久没连过数据库了  这是以前练习时写的odbc的驱动 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    和你的 
    Class c=oracle.jdbc.driver.OracleDriver.class; 
    之间 我觉得还是有问题的
      

  12.   

    jdk版本和你同学是一样的吗,把用jdbc链接失败的 错误信息贴出来。
      

  13.   

    把你的Class c=oracle.jdbc.driver.OracleDriver.class; 换成Class.forName("oracle.jdbc.driver.OracleDriver"); 就对了
      

  14.   

    谢谢!
    一样的呀。。我的是JDK1.6的  我同学的也是
      

  15.   

    嗯 是啊   主要是驱动问题   实在郁闷了  都是1.6的JDK  难道还有区别呀   
      

  16.   

    改成这样试试
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@192.168.28.98:1521:orcl","baby","baby"); 
      

  17.   

    oracle驱动在安装目录下有,看看是不是你的驱动有问题。