将字符串存储在Oracle DB表中

时间:2017-01-16 11:54:23

标签: java oracle

我想在Oracle DB表中执行INSERT操作。

我想插入的示例字符串是HTTP请求:

a=5&b=hello&date=2016/12/31

此字符串存储如下:

a=5&b=hello&date=2016%2F12%2F31

即使用URL编码字符而不是UTF-8编码字符串。

以前,我的字符串按预期存储为UTF-8格式。 所以,我能够使用

检索和处理它
string.split('/')

问题是什么?在我的开发环境中可以改变什么? 这是DBMS方面的问题吗?

由于

编辑:

 public static String func(HttpServletRequest request) {

   String date = request.getParameter("date");

   date.split("/");        IT WORKS!!!
}

public static String func(String url_stored_into_DB) {

  String date = getDateFromUrl(url_stored_into_DB);

  date.split("/");        IT DOESN'T WORK!!!
                        since it was stored with %2F
}

将网址存储到数据库中:

//HttpServletRequest request comes in to the server
String url = request.toString().substring(beginIndex, endIndex);
stmt = conn.prepareStatement("INSERT INTO table (URL) VALUES (?)");
stmt.setString(1, url);
stmt.executeQuery();
stmt.close();

1 个答案:

答案 0 :(得分:4)

您尝试拆分不包含' /'的文字字符串。使用' /'的字符字符。当然它不起作用。为什么我说你的字符串不包含' /'字符? 因为它是URL编码的。 URL编码的目的是确保字符串不包含在URL中有意义的各种字符。

您需要先对其进行URL解码。这样的事情可以解决问题。

PK!bîh^[Content_Types].xml ¢(