有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javaoracle与JDBC的连接

因此,我使用JDBC和mySQL连接到java应用程序中的测试mySQL数据库,一切正常。生产最终将位于oracle数据库上。似乎我可以改变驱动程序和连接,使这项工作

我得到了这个:/usr/local/oracle/product/10.1.0/client\u 1/bin/sqlplus-S user/password@SERVICE@什么。sql

所以我假设这就是本地访问它的方式。我也得到了主人。因此,我认为连接url将转换为以下内容,我可以做到这一点:

String url = "jdbc:oracle:thin:user/password@//host/SERVICE"

Connection c = DriverManager.getConnection(url);

但这似乎不起作用。我被“某物”弄糊涂了。sql部分。我将如何在我的连接url中包含这些内容?在我当前的连接URL“jdbc:oracle:thin:user/password@//host/SERVICE”中是否也有任何明显的错误


共 (2) 个答案

  1. # 1 楼答案

    我通常不再在代码中直接使用连接字符串,但这看起来基本上是正确的。真正的问题是Oracle不是标准的,这就是为什么在那里有愚蠢的@符号

    您可能还会发现一些SQL也无法工作。那是因为甲骨文有一些怪癖。在将oracle数据库投入生产之前,您确实应该对其进行测试

  2. # 2 楼答案

    首先,sqlplus是Oracle的一个命令行实用程序,他们给了您一个示例,其中的值应该在示例中被替换

    如果您有一个名为“ababa”的用户,其密码为“sesame”。假设服务是服务器“瓶子”上的“精灵”。如果从命令行运行的SQL是“SELECT*from wisks LIMIT 3”,它位于名为“/tmp/wisks.SQL”的文件中

    在命令行中,可以键入以下内容:

    /usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S ababa/sesame@genie @/tmp/wishes.sql
    

    从Java,我们可以调用:

    Connection conn = DriverManager.getConnection("jdbc:oracle:thin://bottle/genie",
                                                  "ababa",
                                                  "sesame");