【问题标题】:how to save image path to sql database in java如何在java中将图像路径保存到sql数据库
【发布时间】:2014-06-07 16:28:27
【问题描述】:

我必须将 jfilechooser 选择的图像路径保存到 sql 数据库,并每次从该 sql 路径加载该图像。我正在使用preparedStatment。但我得到的路径保存在没有 "\" 的 sql 数据库中。这是我的部分代码。请帮助我。

    PreparedStatement ps = null;
    ResultSet rs = null;
    Connection conn = null;
conn = DBConnection.ConnectDB();

 try {
            JFileChooser choose = new JFileChooser();
            choose.showOpenDialog(null);
            File f = choose.getSelectedFile();
            if (f != null) {
                fileName = f.getAbsolutePath();

                String sql = "UPDATE addskin SET Path='" + fileName + "' WHERE Name='Assigned'";
                ps = conn.prepareStatement(sql);
                ps.execute();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

【问题讨论】:

  • 我替换了......但我得到了 sql 错误。文件名 = f.getAbsolutePath().replaceAll("\\", "-");错误 -java.util.regex.PatternSyntaxException:索引 1 附近出现意外内部错误 \^

标签: java mysql sql sql-server prepared-statement


【解决方案1】:

标准解决方案是Escape

快速的解决方案是用一些特殊字符替换斜线,稍后再改回来。

【讨论】:

  • 我替换了......但我得到了 sql 错误。文件名 = f.getAbsolutePath().replaceAll("\\", "-");错误 -java.util.regex.PatternSyntaxException:索引 1 附近出现意外内部错误
  • 也许“-”对您的数据库来说是个糟糕的选择?我也可以将我的文件命名为 image-1.png。怎么样 fileName = fileName.replace("\\","\\\\")
  • thnks Mingtao .... 它有效...谢谢你这么多... replaceAll dosnt 有效.. 但是 replace() 效果很好.. 非常感谢..
猜你喜欢
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
相关资源
最近更新 更多