我是Java相关Web开发的新手,我似乎无法使用JDBC工作获得一个简单的程序。我正在使用现成的Oracle 10g XE和Eclipse EE IDE。从我到目前为止检查过的书籍和网页,我已经将问题缩小到错误编写的数据库URL或丢失的JAR文件。我收到以下错误:
java.sql.SQLException:找不到合适的jdbc驱动程序:oracle://127.0.0.1:8080
使用以下代码:
import java.sql.*;
public class DatabaseTestOne {
public static void main(String[] args) {
String url = "jdbc:oracle://127.0.0.1:8080";
String username = "HR";
String password = "samplepass";
String sql = "SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE LAST_NAME='King'";
Connection connection;
try {
connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
System.out.println(statement.execute(sql));
connection.close();
} catch (SQLException e) {
System.err.println(e);
}
}
}
数据库网址的正确格式是什么?他们被提到很多,但我找不到描述。
编辑(决议):
根据duffymo的回答,我从Oracle's download site获得ojdbc14.jar
并将其放入Eclipse项目的Referenced Libraries中。然后我将代码的开头改为
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
并且有效。
答案 0 :(得分:40)
有两种方法可以设置它。如果您有SID,请使用此(较旧)格式:
jdbc:oracle:thin:@[HOST][:PORT]:SID
如果您有Oracle服务名称,请使用此(更新)格式:
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
call to getConnection()
is correct。
此外,正如duffymo所说,通过在类路径中包含ojdbc6.jar
来确保实际的驱动程序代码存在,其中数字对应于您正在使用的Java版本。
答案 1 :(得分:37)
看here。
您的网址不正确。应该是这样的:
url="jdbc:oracle:thin:@localhost:1521:orcl"
您也没有注册驱动程序类。您想要下载瘦驱动程序JAR,将其放入CLASSPATH,并使您的代码看起来更像this。
更新:“ojdbc14.jar”中的“14”代表JDK 1.4。您应该将驱动程序版本与正在运行的JDK相匹配。我打赌这意味着JDK 5或6。
答案 2 :(得分:17)
url的正确格式可以是以下格式之一:
jdbc:oracle:thin:@<hostName>:<portNumber>:<sid>; (if you have sid)
jdbc:oracle:thin:@//<hostName>:<portNumber>/serviceName; (if you have oracle service name)
不要在那里放任何空间。 尝试使用1521作为端口号。 sid(数据库名称)必须与环境变量中的相同(如果使用的是Windows)。
答案 3 :(得分:4)
如果你使用的是oracle 10g快递版,那么:
1.用于加载课堂使用DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
2.使用Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/password@localhost:1521:xe");
答案 4 :(得分:0)
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");
答案 5 :(得分:0)
我不是Java开发人员,所以不幸的是我不能直接评论你的代码,但我在Oracle FAQ中找到了关于连接字符串的形式
jdbc:oracle:<drivertype>:<username/password>@<database>
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03
希望有所帮助
答案 6 :(得分:0)
String host = <host name>
String port = <port>
String service = <service name>
String dbName = <db schema>+"."+service
String url = "jdbc:oracle:thin:@"+host+":"+"port"+"/"+dbName