2013-07-01 33 views
0

我正在編寫的程序從.properties文件加載連接參數,並使用它們連接到幾個不同的數據庫。我應該對傳遞給java.sql.DriverManager的getConnection方法的URL進行URL編碼嗎?

所以:

  • 可能網址轉義是必要的?
  • 是否需要URL編碼取決於驅動程序? - 如果有的話 - 是否需要專門針對Oracle JDBC驅動程序?

的一位(不是絕對必要的閱讀)背景:

文檔說提供一個網址,格式似乎像一個正常的URL的(大部分時間,反正)但我從來沒有看到任何人使用java.net.URLEncoder。每個人似乎都只是將字符串傳遞給方法。 當然,我見過的每個例子都是硬編碼的字符串文字(所以運行時轉義方法調用將是不必要的)。

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

+0

我知道這是非常具體的。但我希望儘可能不要錯。 – root

+0

我們學習的最好方式是失敗。編寫你的代碼並嘗試一下。如果不起作用,請添加編碼。如果它仍然不起作用,請回到我們身邊,我們會用棍子戳它(並希望可以幫助你) –

+0

問題是,我正在編寫TNS連接的支持,而且我可能不是最後一個人使用它;我不知道它將如何被使用或將傳遞給它的參數。 Oracle允許你基本上將整個TNSNAMES.ora文件填充到URL的右半部分,我擔心一些可憐的sod會在我離開後陷入一個神祕的錯誤消息。 – root

回答

1

你不應該URL編碼的URL都沒有。儘管它的名字,URLEncoder類的目的是編碼URL 參數,和POST參數。

但是,您應該肯定轉義任何URL都會傳遞給任何期望的URL。正確的方法是使用new URI(null, String, null).toASCIIString()作爲URL,URLEncoder用於每個參數名稱和值。

+0

很高興知道。謝謝。 :) – root

相關問題