Oracle与JDBC的连接

时间:2012-04-13 16:09:20

标签: java oracle jdbc

所以我使用JDBC与mySQL连接到java应用程序中的测试mySQL数据库,一切正常。生产将最终在oracle数据库上。我似乎可以更改驱动程序和连接以使其工作。

我得到了这个:/usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S user / password @ SERVICE @ something.sql

所以我假设这是本地访问的方式。我也被给了主人。所以我认为连接url会转换为以下内容,我可以这样做:

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

Connection c = DriverManager.getConnection(url);

但这似乎不起作用。我对@ something.sql部分感到困惑。我如何在我的连接网址中包含该内容?我当前的连接URL中是否有任何明显错误,“jdbc:oracle:thin:user / password @ // host / SERVICE”?

2 个答案:

答案 0 :(得分:1)

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

如果您的用户名为“ababa”,其密码为“sesame”。假设服务是服务器“瓶子”上的“精灵”。如果从命令行运行的SQL是“SELECT * FROM wishes LIMIT 3”,它位于名为“/tmp/wishes.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");

答案 1 :(得分:0)

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

您可能还会发现某些SQL也无法正常工作。这是因为Oracle有一些怪癖。在将它投入生产之前,你真的应该针对oracle数据库测试你的代码。