2012-02-04 2 views
2

Java 응용 프로그램에서 mysql 테이블로 파일을 삽입하려고합니다.예외없이 Mybatis 삽입이 실패합니다.

매퍼에 대한 호출이 예외없이 완료되었지만 결국 테이블에 레코드가 없습니다.

파일 내용을 BLOB 필드에 매핑하는 방식에 문제가있을 수 있습니까?

이 빈입니다 :

public class CustomFile { 
private int id; 
private String title; 
private String fileName; 
private String fileType; 
private String fileSize; 
private byte[] fileContent; 
private String fileExtension; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

public String getFileName() { 
    return fileName; 
} 

public void setFileName(String fileName) { 
    this.fileName = fileName; 
} 

public String getFileType() { 
    return fileType; 
} 

public void setFileType(String fileType) { 
    this.fileType = fileType; 
} 

public String getFileSize() { 
    return fileSize; 
} 

public void setFileSize(String fileSize) { 
    this.fileSize = fileSize; 
} 

public byte[] getFileContent() { 
    return fileContent; 
} 

public void setFileContent(byte[] fileContent) { 
    this.fileContent = fileContent; 
} 

public String getFileExtension() { 
    return fileExtension; 
} 

public void setFileExtension(String fileExtension) { 
    this.fileExtension = fileExtension; 
} 

} 

그리고 이것은 매핑 :

2012-02-04 20:14:20,656 DEBUG java.sql.Connection.debug:27 - ooo Connection Opened 
2012-02-04 20:14:22,128 DEBUG java.sql.PreparedStatement.debug:27 - ==> Executing: INSERT INTO file SET Title = ?, File_Name = ?, File_Type = ?, File_Size = ?, File_Content = ?, File_Extension = ? 
2012-02-04 20:14:22,135 DEBUG java.sql.PreparedStatement.debug:27 - ==> Parameters: Test(String), 294435318.jpg(String), image/jpeg(String), 10028(String), [email protected](ByteArrayInputStream), image/jpeg(String) 
2012-02-04 20:14:30,113 DEBUG java.sql.Connection.debug:27 - xxx Connection Closed 

감사 :

<insert id="saveFile" parameterType="CustomFile"> 

    INSERT INTO file SET 
    Title = #{title}, 
    File_Name = #{fileName}, 
    File_Type = #{fileType}, 
    File_Size = #{fileSize}, 
    File_Content = #{fileContent,jdbcType=BLOB}, 
    File_Extension = #{fileExtension} 

</insert> 

이가의 log4j 로그입니다!

+1

왜 File 형식을 사용하고 있는지 이해할 수 없습니까? 나머지 애플리케이션은 말할 수 없지만 struts2 파일을 사용하면 인터셉터를 업로드 할 때 struts.apache.org/2.0.14/docs/file-upload.html 이렇게하면 다음과 같이 할 수 있습니다. 일부 파일 내용을 로그 작성기로 덤프하고 struts2 쪽이 좋은지 확인하고 질문에서 삭제하십시오. – Quaternion

답변

6

아마도 commit 삽입에 실패 했습니까? SqlSession을 생성하는 코드를 보시겠습니까?

+0

그 것이었다면, 나는 내가 거래를 저 지르지 않는다고 생각하지 않았던 가능한 파일 내용 문제에 더 집중했다. 감사! – Roberto

관련 문제