站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题再次请教JAVA连接ORACLE问题

再次请教JAVA连接ORACLE问题

摘要: 再次请教JAVA连接ORACLE问题


我用的是JDK1.5,ORACLE9I,CLASSPATH里配置如下;.;C:/oracle/ora81/jdbc/lib/classes12.jar.;C:/Program Files/Java/jdk1.5.0_01/lib,也将ORACLE中的CLASSES12.JAR复制到了JDK的LIB中,我的连接代码如下:
String url="jdbc:oracle:thin:ebg12:1521:ebg";
String user="system";
String pass="manager";
Connection conn=null;
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
conn=DriverManager.getConnection(url,user,pass);
Statement stme=conn.createStatement();
}
编译时通过,运行时报错:
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
at dbtest.main(dbtest.java:20)
也就是:DriverManager.registerDriver(new oracle.jdbc.OracleDriver());行出错

请教各位是哪里错了.这个问题困扰我很久了.


sigh。大多是配置classpath和path出的错。
给你一个建议,安装jdk时,不要安装到中文目录或者中间带有空格字符的目录下边。
你可以把jdk1.5.**移到d:/下边。假设jdk1.5.0_01的位置在d:/java/jdk1.5.0_01下。
一个比较保险的配置是:
JAVA_HOME 值为 d:/java/jdk1.5.0_01
PATH 值为 %JAVA_HOME%/bin; %JAVA_HOME%/jre/bin
CLASSPATH值为 .;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;C:/oracle/ora81/jdbc/lib/classes12.jar

这样配置完以后,你再试试你的程序执行有什么问题?


配好环境之后要重启CMD控制台在运行程序。最好还是用ECLIPSE吧,JAR ADD一下就没问题了


已经按照楼上说的作了,现在编译报错:
dbtest.java:20: package oracle.jdbc.driver does not exist
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
到底是哪个环节错了?


路过,友情up!


你import了吗?


把classes12.jar复制到/jdk/jre/lib/ext目录下


sigh,怎么可能还找不到Driver,确认classes12.jar在CLASSPATH当吗?
实在不行,使用傻瓜式IDE,比如JBuilder或者Eclipse算了。


实在不行,放弃了。


加载驱动程序了吗?
用的是什么工具开发的?
用Eclipse,在工程下导入驱动classes12.jar

//加载驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");


给你个连接程序,你好象问了好多次了,其中url,username,password要修改,把class12.jar添到jdk目录的/jre/lib/ext中,查询的语句要改下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCOracle {

/**
* @param args
* @throws SQLException
*/

public static void main(String[] args){
// TODO Auto-generated method stub
Connection con = null;
Statement st = null;
ResultSet rs = null;
try{
Class.forNam("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@10.1.0.62:1521:icss","system","manager1");
st = con.createStatement();

rs = st.executeQuery("select * from t_user");
while(rs.next()){
String value = rs.getString("user_name");
int user_id = rs.getInt(1);
String password = rs.getString("password");
System.out.println(user_id+"/t"+value+"/t"+password);
}
}catch(Exception e){
System.out.println();
}
finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

}



楼上的兄弟,谢谢你一直回复我的问题。
我按照你说的做了,还是找不到驱动:Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver

我真被这个问题快搞疯掉了,到底是哪里错了?
JAVA连接ORACLE时到底要做哪些配置,ORACLE要启动哪些服务,各位可以说一下吗?


在SQLPLUS中是可以连上的。


兄弟,听在下一句劝吧,多用一些开发工具吧!!如JBulider或者Eclispe.我刚开始学的时候也和你一样,自从用了开发工具后,真还对得起咱的时间.


oracle启动监听器和数据库服务
上面的代码我在dos窗口和eclipse下都能运行。你在eclipse下面试下看能行不
看下你的path中使用的jdk是oracle的还是自己装的哪个jdk,装了oracle它会把你path中的jdk覆盖掉,这个时候你使用的是oracle的jdk



路径问题


这问题有时候是会出奇怪的错的
好好对照路径
重启TOMCAT
在ECLIPSE下ADD全部JAR文件


;.;C:/oracle/ora81/jdbc/lib/classes12.jar.;C:/Program Files/Java/jdk1.5.0_01/lib
有错误!

ClassPath修改如下:

.;C:/oracle/ora81/jdbc/lib/classes12.jar;C:/Java/jdk1.5.0_01/lib

*.直接Cut Java目录到C:/


关注,我也没解决这个问题,我用的是JDK1.5,加载的驱动程序是oracle.jdbc.OracleDriver(注意不是oracle.jdbc.driver.OracleDriver),ORACLE_HOME/jdbc/ojdbc14.jar文件已经包含到classpath中了,但还是出现ClassNotFoundException。盼解啊!


顺便回楼主,class12.jar中的类貌似oracle.jdbc.driver.OracleDriver。对JDK1.4后似乎有class14.jar,路径也变为oracle.jdbc.OracleDriver,我是看的ORACLE_HOME/jdbc下的文档。


注册驱动不对吧


mark


我的问题解决了,回楼主,根据我的实践,如果用class12.jar,驱动路径该是oracle.jdbc.driver.OracleDriver。建议JDK1.5用ojdbc14,驱动的路径该是oracle.jdbc.OracleDriver。


↑返回目录
前一篇: 如何把JDBC3个jar文件导入的工程
后一篇: 请教:连接ORACLE数据库报错