Oracle connection with JDBC
所以我使用 JDBC 和 mySQL 连接到 java 应用程序中的测试 mySQL 数据库,一切正常。生产最终将在 oracle 数据库上。看来我可以更改驱动程序和连接来完成这项工作。
我得到了这个:/usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S user/password@SERVICE @something.sql
所以我假设这是在本地访问它的方式。我也得到了主人。所以我认为连接 url 将转换为以下内容,我可以这样做:
但这似乎不起作用。我对@something.sql 部分感到困惑。我如何将它包含在我的连接网址中?我当前的连接 URL"jdbc:oracle:thin:user/password@//host/SERVICE"中是否还有任何明显的错误?
首先,sqlplus 是 Oracle 的一个命令行实用程序,他们给了你一个例子,在他们的例子中值应该被替换。
如果您有一个名为 "ababa" 的用户,他的密码为 "sesame"。假设服务是服务器 "bottle" 上的 "genie"。如果从命令行运行的 SQL 是 "SELECT * FROM Wishes LIMIT 3",它位于一个名为 "/tmp/wishes.sql" 的文件中。
从命令行,可以键入以下内容:
1 | /usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S ababa/sesame@genie @/tmp/wishes.sql |
从 Java 中可以调用:
1 2 3 | Connection conn = DriverManager.getConnection("jdbc:oracle:thin://bottle/genie", "ababa", "sesame"); |
我通常不再直接在我的代码中使用连接字符串,但这看起来基本正确。真正的问题是 Oracle 不是标准的,这就是为什么你在那里有愚蠢的 @ 符号。
您可能还会发现您的某些 SQL 也不起作用。那是因为甲骨文有一些怪癖。在将代码投入生产之前,您确实应该针对 oracle 数据库测试您的代码。