我正在使用oracle 11g。我编写代码来连接oracle数据库和java 1.6,但我无法连接到它。将引导线配置为以下内容时:
我有ojdbc6.jar
,orai18n.jar
和class12.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
答案 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特定的类来保存代码的通用性。这只是一个示例,但您需要牢记真实的应用程序。