2014-04-23 3 views
0

jfilechooser에서 선택한 이미지 경로를 sql 데이터베이스에 저장하고 해당 SQL 경로에서 매번 이미지를로드해야합니다. 메신저는 preparedStatment를 사용합니다. 하지만 "\"없이 SQL 데이터베이스에 저장된 경로가 있습니다. 여기에 내 코드 일부가 있습니다. 제발 도와주세요.자바에서 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(); 
     } 
+0

내가 바꿨지 만 SQL 오류가 발생했습니다. fileName = f.getAbsolutePath(). replaceAll ("\\", "-"); 오류 -java.util.regex.PatternSyntaxException : 인덱스 1 부근의 예기치 않은 내부 오류 \ ^ – user3528892

답변

0

표준 용액은 Escape입니다.

빠른 해결책은 슬래시를 특수 문자로 바꾸고 나중에 다시 변경하는 것입니다.

+0

교체되었지만 SQL 오류가 발생했습니다. fileName = f.getAbsolutePath(). replaceAll ("\\", "-"); 오류 -java.util.regex.PatternSyntaxException : 인덱스 1 근처의 예상치 못한 내부 오류 – user3528892

+0

아마도 "-"가 DB에 나쁜 선택입니까? 또한 내 파일의 이름을 image-1.png로 지정할 수도 있습니다. 어때? fileName = fileName.replace ("\\", "\\\\") –

+0

아니 ... 나는 somthingelse와 함께 노력했다. 그러나 그것은 작동하지 않았다 .. Thnks .. – user3528892

관련 문제