日期:2014-05-20  浏览次数:20889 次

Java项目无法连接到Oracle数据库,驱动jar包导入是正确的,所有预备工作都做好了,一起也测试成功的,就是不知道今抽的什么风
Java项目无法连接到Oracle数据库,驱动jar包导入是正确的,所有预备工作都做好了,一起也测试成功的,就是不知道今抽的什么风。

还有,我用的是Mac系统

数据库管理类代码。
Java code
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 数据库管理类
 * 
 * @author Sheng_Aofei
 * 
 */
public final class BaseDao {
    private static Connection conn; // 数据库链接对象
    private static final String URL = "jdbc:oracle:thin:@ip:port:database_name"; // 数据库链接URL
    private static final String USER = "user_name"; // 用户名
    private static final String PASSWD = "passwd"; // 密码

    /**
     * 基本操作
     */
    static {
        try {
                        // Class.forname();已经试过了,不行
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            conn = DriverManager.getConnection(URL, USER, PASSWD); // 获取数据库链接实例
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库链接实例
     * 
     * @return 数据库链接实例
     */
    public static Connection getConn() {
        if (conn != null)
            return conn;
        else
            return null;
    }

    /**
     * 关闭选项
     * 
     * @param rs
     *            结果集
     * @param ps
     *            适配器
     * @param isCloseConn
     *            决定是否关闭数据库链接对象(建议程序即将结束或认为再也不做数据库访问时再关闭),true表关闭,false表不关闭
     */
    public static void closeOption(ResultSet rs, PreparedStatement ps,
            boolean isCloseConn) {
        try {
            // 关闭结果集
            if (rs != null && !rs.isClosed()) {
                rs.close();
                rs = null;
            }

            // 关闭适配器
            if (ps != null && !ps.isClosed()) {
                ps.close();
                ps = null;
            }

            // 关闭数据库链接实例
            if (isCloseConn && conn != null && !conn.isClosed()) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}



错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
at com.shengaofei.util.BaseDao.<clinit>(BaseDao.java:26)
at com.shengaofei.dao.impl.VehiclePurchaseTaxDaoImpl.save(VehiclePurchaseTaxDaoImpl.java:21)
at com.shengaofei.services.AllService.active(AllService.java:42)
at Test.main(Test.java:6)
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4 more

------解决方案--------------------
看看你的classpath文件里面有吗?估计导的有问题吧,再不就是弄错包了。