当前页面: 开发资料首页 → 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。