在更新时,java中的sql记录消失了反斜杠

时间:2016-11-25 16:18:59

标签: java sql netbeans

当我INSERT图像路径时,反斜杠仍然存在C:\Users\COMP\Desktop\Image.png。但是如果我UPDATE sql记录了相同的路径代码,则反斜杠会消失C:UsersCOMPDesktopImage.png

query = "UPDATE battle SET name = '"+jTextField2.getText()+"', Image = '"+jTextField1.getText()+"' WHERE name = '"+jTextField2.getText()+"' ;";

但INSERT我做的不同

protected void insertW(String s1, String s2) query = "INSERT INTO db.work (db.work .name, db.work .Image) VALUES (?,?);"; 

并通过insertW传递字段insertW(jTextField1.getText(), jTextField2.getText());

的值

如何解决?

JFileChooser chooser=new JFileChooser();
        chooser.showOpenDialog(null);
        File f=chooser.getSelectedFile();
        String filename=f.getAbsolutePath();
        jTextField1.setText(filename);
        ImageIcon icon = new ImageIcon(f.getAbsolutePath());

1 个答案:

答案 0 :(得分:1)

在进行插入时,您正在使用预准备语句 - 这很好,因为它们以它们的方式存储在数据库中。

但是在进行更新时,无论如何都将值设置为“普通字符串”。这应该避免,因为这也是一个高安全风险(SQL注入)。尝试通过预处理语句进行插入更新。这个指向JDBC基础知识的链接可以帮助您:https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html