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

标签 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.

最佳答案

您根本不应该对 URL 进行 URL 编码。尽管有其名称,URLEncoder 类的用途是对 URL 参数和 POST 参数进行编码。

但是,您当然应该转义传递给任何需要 URL 的任何内容。正确的方法是使用 new URI(null, String, null).toASCIIString() 表示 URL 本身,并使用 URLEncoder 表示每个参数名称和值。

关于java - 我应该对传递给 java.sql.DriverManager 的 getConnection 方法的 URL 进行 URL 编码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411438/

相关文章:

java - 使用请求范围的 bean 函数作为 JSF 中临时呈现按钮的操作

php - 如何在 pdo oracle(oci) 中将字符集设置为 UTF8

node.js - 如何使用 Node.js 将多条记录插入 Oracle DB

html - 如何删除 URL 末尾的 .html?

java - HTTP 状态 415 - 无法使用内容类型

java - Xuggler,在 xuggler 5.4 中转发和倒带视频不工作

java - JDBC - 执行带有可选标准的准备语句的最佳方式

apache - 如何从 URL 中删除 anchor 标记?

python - Scrapy:存储/抓取当前的 start_url?

java - 带有已检查异常的调用方法