JDBC Thin Oracle 11g

3
我使用的是Oracle 11g。我编写了连接Java 1.6的Oracle数据库的代码,但无法连接。当配置指南如下时:
我有ojdbc6.jar、orai18n.jar和class12.jar 我设置了:
Class_Path:
%ORACLE_HOME%\jlib\orai18n.jar;r;%Oracle_home%\jdbc\ojdbc6.jar

之后我运行了一个连接Oracle数据库的Java示例代码,但是遇到了以下错误:

C:\Program Files\Java\jdk1.6.0_11\bin>javac c:\JDBCVersion.java
c:\JDBCVersion.java:2: package oracle.jdbc does not exist
import oracle.jdbc.*;
^
c:\JDBCVersion.java:3: package oracle.jdbc.pool does not exist
import oracle.jdbc.pool.OracleDataSource;
                       ^
c:\JDBCVersion.java:8: cannot find symbol
symbol  : class OracleDataSource
location: class JDBCVersion
OracleDataSource ods = new OracleDataSource();
^
c:\JDBCVersion.java:8: cannot find symbol
symbol  : class OracleDataSource
location: class JDBCVersion
OracleDataSource ods = new OracleDataSource();
                           ^
4 errors

有人能帮我解决这个问题吗?

谢谢, Sopolin

3个回答

4
为了使用Oracle JDBC驱动程序,您必须在CLASSPATH中拥有ojdbc6.jar或等效文件。这些JAR文件没有任何要求需要在操作系统的PATH变量中。
您可以从Oracle技术网络上的JDBC/UCP页面获取Oracle的JDBC驱动程序。
此外,如果您已经在CLASSPATH中拥有ojdbcX.jar,则不需要classes12.jar文件。
简而言之,如果您正在使用Oracle Thin Driver for JDBC连接到11g数据库,则需要在CLASSPATH中拥有ojdbc5.jar/ojdbc6.jar和orai18.jar。对于OCI驱动程序,您还需要其他文件。

你能指导我如何配置这个问题吗? - Sopolin

1

我不确定你在这里的意思是什么

Class_Path: %ORACLE_HOME%\jlib\orai18n.jar;%ORACLE_HOME%\oui\jlib\classes12.jar 
Path: %Oracle_home%\jdbc\ojdbc6.jar

所有的JAR文件都应该在Class_path上。

你需要将包含dll文件的目录添加到你的PATH中。


你能指导我如何配置这个问题吗?谢谢。 - Sopolin

1

我想知道你的问题是否是由于混合使用了JDBC驱动程序JAR文件所致。我不知道你从哪里获取的,但你不应该同时拥有classes12.jar和ojdbc6.jar。第一个是针对JDK 1.2的旧版本;你应该将其删除。如果你正在编译JDK 6,那么请使用ojdbc6.jar。

我还建议你使用java.sql接口而不是Oracle特定的类作为静态类型,以保持代码的通用性。这只是一个示例,但你需要记住这一点,以便在实际应用中使用。


我理解你告诉我的内容,但我希望你能指导我配置它。因为我对此没有任何经验。谢谢。 - Sopolin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接