我正在开发一个应用程序,必须从该应用程序打开文档。我必须将文件的路径保存到sql数据库中。sql中插入文件路径的列的类型为VARCHAR(255)。
如果文件的路径是C:UsersUPS21120Downloadsdoc1.pdf
,则将其作为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
}
在将要插入的值插入数据库之前,必须转义该值。或者你可以使用准备好的语句来为你做这件事。
另请参阅:Java-转义字符串以防止SQL注入
在java 中转义字符串
http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html
使用Java字符串规则对字符串中的字符进行转义。。。正确处理引号和控制字符(制表符、反斜杠、cr、ff等)
最简单的解决方案是在路径中使用/
而不是。然后您可以很容易地将路径字符串插入到数据库中。不会有错误。此外,java还可以将path与
/
一起使用