JavaDB에서는의 Blob로 이미지를 저장하지만, 다음과 같은 방법 :자바 - 나는 데이터베이스에 이미지를 삽입하기 위해 노력하고있어
java.sql.SQLDataException를 : 시도 유형의 데이터 값을 얻기 위해 만들어졌다 'java.io.InputStream (ASCII)'유형의 데이터 값에서 'BLOB'.
데이터베이스에 BLOB를 사용하고 있습니다. 여기
내가 삽입하고 있어요 방법입니다 만 이미지의 경로를 저장에 대해, 그런데
package javaapplication16;
import com.sun.rowset.CachedRowSetImpl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sql.rowset.CachedRowSet;
public class JavaApplication16 {
public static void main(String[] args) throws FileNotFoundException {
try {
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
try {
try {
Class.forName(driver).newInstance();
} catch (InstantiationException ex) {
Logger.getLogger(JavaApplication16.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(JavaApplication16.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(JavaApplication16.class.getName()).log(Level.SEVERE, null, ex);
}
CachedRowSet crs = null;
crs = new CachedRowSetImpl();
crs.setUrl("jdbc:derby:derbyDB; create = true");
crs.setUsername("x");
crs.setPassword("x");
crs.setCommand("drop table tbl");
crs.execute();
crs.setCommand("CREATE TABLE tbl (ID blob)");
crs.execute();
File f = new File("/images/exam_gif_to_png.gif");
crs.setCommand("insert into tbl (id) values (?)");
FileInputStream fin = new FileInputStream(f);
crs.setBinaryStream(1, fin, (int) f.length());
crs.execute();
} catch (SQLException ex) {
Logger.getLogger(JavaApplication16.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
을, 문제는 내가 사용자가 나에게 이미지와 저장소를 보낼 수 있도록 할 것입니다 그것들을 파일에 담아서 같은 이름의 이미지가 여러 개있는 문제를 정확히 해결할 수 있을지 모르겠다. 이름이 바뀌고 좋은 해결책이 될 것인가?
색인 5가 올바른 매개 변수를 참조하는지 확인하십시오. 그들은 1 색인입니다! 또한,'available()'은 추정값만을 반환합니다! – jn1kk
나는 인덱스에 대해 확신합니다. –
"이름이 바뀌고 좋은 해결책이 될 것입니까?" 자신의 이름 지정 체계로 이미지를 저장하고 파일에 대한 포인터와 함께 "원본 이름"을 DB에 저장해야합니다. – leonbloy