1

我正在尝试编写一个 java 代码来连接到 Oracle9i 企业版 9.2.0.4.0。我的机器是windows XP。Oracle DB OS 是 Solaris 8。我目前所做的是:

java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

我不确定 Oracle DB 的 ODBC 是否使用任何用户名和密码,因为客户端没有向我提供。唯一提供的是 Oracle DB 服务器主机名。但我需要做好准备,以防他们有用户名和密码。所以假设现在我已经有了用户名、密码和主机名。如何使用这些参数进行连接?我需要下载任何 jdbc 驱动程序吗?我应该把它放在哪里?我完全迷失了,因为我没有任何 Solaris 8 和 Oracle 9 可以进行测试。因为根据我的发现,连接字符串/网址因版本、操作系统等而异。

4

2 回答 2

4

我强烈建议您直接使用 oracle 驱动程序,而不是使用 ODBC 连接到数据库。您可以从 Oracle 免费下载它 - 它是一个小 jar 文件:http ://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

然后您可以使用以下代码连接到数据库:

Connection connection = null;
try {
    // Load the JDBC driver
    String driverName = "oracle.jdbc.driver.OracleDriver";
    Class.forName(driverName);

    // Create a connection to the database
    String serverName = "sun.host.name.or.ip.address";
    String portNumber = "1521";
    String sid = "dbname";
    String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
    String username = "username";
    String password = "password";
    connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
    // Could not find the database driver
} catch (SQLException e) {
    // Could not connect to the database
}
于 2012-07-13T08:44:01.783 回答
0

我认为有一个拼写错误。连接字符串的数据库部分应使用斜杠 (/) 而不是冒号 (:) 分隔。对应行的正确代码如下:

... 字符串 url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + "/" + sid; ...

于 2018-12-27T11:23:32.950 回答