我正在尝试使用Oracle瘦驱动程序连接到Oracle 10 XE数据库,但我无法实现此目的。我甚至在编译期间将驱动程序添加到了我的类路径中。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class Connectivity {
public static void main(String args[]) throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:XE";
Properties props = new Properties();
props.setProperty("user", "SYSTEM");
props.setProperty("password", "iiita");
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
Connection conn = DriverManager.getConnection(url,props);
String sql ="select sysdate as current_day from dual";
PreparedStatement preStatement = conn.prepareStatement(sql);
ResultSet result = preStatement.executeQuery();
while(result.next()){
System.out.println("Current Date from Oracle : " + result.getString("current_day"));
}
System.out.println("done");
}
}
此代码在运行
期间出现以下错误Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521/XE
at java.sql.DriverManager.getConnection(DriverManager.java:644)
at java.sql.DriverManager.getConnection(DriverManager.java:202)
at Connectivity.main(Connectivity.java:16)
答案 0 :(得分:3)
在致电getConnection(url, props)
Class.forName ("oracle.jdbc.driver.OracleDriver");
除非它们是jdbc驱动程序>否则在类路径上放置jar是不够的。 4.0版。您必须使用DriverManager
实际注册驱动程序。
将jdbc:oracle:thin:@localhost:1521:XE
更改为jdbc:oracle:thin:@//localhost:1521:XE
。我相信这是新的语法。
编译为
javac -classpath /<your_path>/ojdbc6.jar Connectivity.java
以
运行java Connectivity
答案 1 :(得分:1)
在运行主类时忘了指定ojdbc14类路径:
对于Windows:java -cp .;<path>/ojdbc14.jar Connectivity
在Linux上:java -cp .:<path>/ojdbc14.jar Connectivity
P.S。您不需要在类路径上使用ojdbc14.jar来编译主类。这是运行时依赖。