Java Oracle与JDBC的连接

Java Oracle与JDBC的连接,java,oracle,jdbc,Java,Oracle,Jdbc,因此,我使用JDBC和mySQL连接到java应用程序中的测试mySQL数据库,一切正常。生产最终将位于oracle数据库上。似乎我可以改变驱动程序和连接,使这项工作 我得到了这个:/usr/local/oracle/product/10.1.0/client\u 1/bin/sqlplus-S user/password@SERVICE@something.sql 所以我假设这就是本地访问它的方式。我也得到了主人。因此,我认为连接url将转换为以下内容,我可以做到这一点: 字符串url=jdb

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

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

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

字符串url=jdbc:oracle:thin:user/password@//host/SERVICE

连接c=DriverManager.getConnectionurl


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

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


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

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

如果您有一个名为ababa的用户,他有一个密码。假设服务是服务器上的精灵。如果从命令行运行的SQL是SELECT*from WITHES LIMIT 3,它位于名为/tmp/WITHES.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");

查看这篇文章-我使用jdbc:oracle:thin:@host:1521:SERVICE语法并分别提供用户名和密码使其工作。谢谢。没有标准的JDBCURL。根据定义,它是特定于供应商的。顺便说一句:MySQL比Oracle有更多的怪癖,2月31日允许存储只是其中之一哦,我肯定会在生产前测试它。除了在代码中直接使用连接字符串,您还有什么选择?Springs JDBC之类的东西。apachedbutils。还有一些其他人会为您抽象出JDBC的混乱。