0

我正在开发一个应用程序,我必须从应用程序中打开文档。我必须将文件的路径保存到 sql 数据库。sql 中插入文件路径的列的类型为 VARCHAR(255)。

如果文件的路径是C:\Users\UPS21120\Downloads\doc1.pdf,则它在数据库中保存为 as C:UsersUPS21120Downloadsdoc1.pdf(保存路径中的反斜杠在哪里?)。

当我检索此路径以打开文件时doc1.pdf我收到一个异常,指出 doc1 不存在。以下是我用来保存路径的代码。请帮忙。

      JFileChooser fc = new JFileChooser(); 
      returnVal = fc.showOpenDialog(view_doc.this);
      File file1=fc.getSelectedFile();

      if (returnVal == JFileChooser.APPROVE_OPTION) {
      String str = "INSERT INTO document(doc_path) VALUES ('"+file+"')";
                  // open connection..execute query etc--works fine

      }
4

3 回答 3

1

您必须先转义要插入的值,然后才能将其插入数据库。或者,您可以使用准备好的语句来为您做到这一点。

另请参阅:Java - 转义字符串以防止 SQL 注入

于 2013-02-08T08:29:24.780 回答
1

在java中转义字符串

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html

使用 Java 字符串规则转义字符串中的字符。... 正确处理引号和控制字符(制表符、反斜杠、cr、ff 等)

于 2013-02-08T08:31:07.067 回答
0

最简单的解决方案是使用/而不是\在路径中。然后您可以轻松地将路径字符串插入数据库。不会有错误。java也可以使用路径/

于 2013-02-08T09:05:19.860 回答