JDBC Thin Oracle 11g

时间:2009-08-24 09:06:48

标签: java oracle jdbc

我正在使用oracle 11g。我编写代码来连接oracle数据库和java 1.6,但我无法连接到它。将引导线配置为以下内容时:

我有ojdbc6.jarorai18n.jarclass12.jar 我设置:

Class_Path:

%ORACLE_HOME%\jlib\orai18n.jar;r;%Oracle_home%\jdbc\ojdbc6.jar

之后我运行示例java代码连接到oracle数据库,但我在下面遇到了这个错误:

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 个答案:

答案 0 :(得分:4)

要使用Oracle JDBC驱动程序,必须在CLASSPATH上使用ojdbc6.jar或等效项。不要求任何这些JAR位于操作系统PATH变量中。

您可以从JDBC/UCP page on the Oracle Technology Network获取Oracle的JDBC驱动程序。

此外,如果您已在CLASSPATH中使用ojdbcX.jar,则不需要classes12.jar文件。

简而言之,如果您针对11g数据库使用Oracle Thin Driver for JDBC,则需要在CLASSPATH中使用ojdbc5.jar / ojdbc6.jar和orai18.jar。您需要OCI驱动程序的其他文件。

答案 1 :(得分:1)

我不确定你的意思

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

所有的罐子都应该放在Class_path上。

您需要PATH上带有dll的目录。

答案 2 :(得分:1)

我想知道你的问题是否是JDBC驱动程序JAR的混合。我不知道你在哪里,但你不应该同时拥有class12.jar和ojdbc6.jar。第一个是JDK 1.2的旧版本;你应该删除它。如果您正在编译JDK 6,请使用ojdbc6.jar。

我还建议您使用java.sql接口而不是Oracle特定的类来保存代码的通用性。这只是一个示例,但您需要牢记真实的应用程序。