我应该对传递给java.sql.DriverManager的getConnection方法的URL进行URL编码吗?

时间:2013-07-01 18:42:41

标签: java oracle url jdbc

我正在编写的程序从.properties文件加载连接参数,并使用它们连接到几个不同的数据库。

所以:

  • 是否有必要转义网址?
  • 是否需要URL编码取决于驱动程序? -如果是这样- 是否有必要专门用于Oracle JDBC驱动程序?

一些(非必要阅读)背景:

文档说要提供一个URL,并且格式看起来像普通URL(大多数时候,无论如何),但我从未见过有人使用java.net.URLEncoder。每个人似乎都将字符串传递给方法。 当然,我见过的每个例子都是一个硬编码的字符串文字(因此运行时转义方法调用是不必要的)。

A link to the Sun- err, Oracle- documentation on DriverManager, for the curious.

1 个答案:

答案 0 :(得分:1)

您根本不应对网址进行网址编码。尽管它的名称,URLEncoder类的目的是编码URL 参数,和POST参数。

但是你肯定应该转义任何传递给任何期望的URL。正确的方法是使用new URI(null, String, null).toASCIIString()表示正确的URL,并使用URLEncoder表示每个参数的名称和值。