将文件路径插入数据库中删除\

时间:2013-02-14 09:39:41

标签: java filechooser

我是java的新手。我想将从FileChooser中选择的文件路径插入到数据库中。但是当我尝试这样做时,路径在查询语句之前是正确的,并且在将其输入数据库之后,它将删除文件路径中存在的所有反斜杠。

filepath=f.getCanonicalPath();
// some database statements....
String query="insert into table1 values('" + filepath + "')";

如果我选择的文件路径是:

  

“C:\用户\文件\ hello.txt的”;

将其插入:

  

“C:Usersdocumentshello.txt”

1 个答案:

答案 0 :(得分:9)

基本上,你不应该把你的价值直接放到SQL中。

您应该使用PreparedStatement并使用您的值设置参数。无需转义,也没有SQL注入攻击的风险。

String query = "insert into table1 values(?)";

PreparedStatement statement = connection.prepareStatement(query);
try {
   statement.setString(1, filePath);
   statement.executeUpdate();
} finally {
   statement.close();
}

您发现自己根据用户输入动态构建SQL的任何时间,您应该退后一步,强烈考虑参数化SQL。 (例外情况是你的应用程序基本上是一个SQL开发工具......)