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

sin*_*mal 3 java filechooser

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

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

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

"C:\用户\文档\ hello.txt的";

它将其插入:

"C:Usersdocumentshello.txt"

Jon*_*eet 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();
}
Run Code Online (Sandbox Code Playgroud)

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