Я пытаюсь добавить изображение как BLOB в HSQLDB.Но в таблице я нахожу что-то вроде ": hsqll: jdbc: client @ f3t5h".Что-то не так с моим Java-кодом ниже?
Мой извлекаемый код похож на то, что я обычно делаю для других баз данных.Почему он не работает для HSQLDB?
Statement stmt = conn.createStatement();
ResultSet results =stmt.executeQuery("SELECT * from productdetails");
while (results.next()) {
String code = (String) results.getObject(1);
String name = (String) results.getObjeenter code herect(2);
String price = Double.toString((Double) results.getObject(3));
int quantity = (Integer) results.getObject(4);
Boolean featured = (Boolean) results.getObject(5);
String desc = (String) results.getObject(6);
String imgPath = (String) results.getObject(7);
Blob aBlob = (Blob) results.getBlob(10);
byte[] allBytesInBlob = aBlob.getBytes(1, (int) aBlob.length());
try {
FileOutputStream fis =
(FileOutputStream) getOutputStream(allBytesInBlob);
} catch (IOException ex) {
Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, null, ex);
}
}
public OutputStream getOutputStream(byte[] _data) throws IOException
{
OutputStream out = new ByteArrayOutputStream();
out.write(_data);
return out;
}
Это мой код вставки.
Connection conn = db.getConnection();
PreparedStatement pstmt;
String sql = "INSERT INTO PRODUCTDETAILS"
( PRODUCTCODE, NAME, PRICE, QUANTITY, FEATURED, DESCRPTION, IMAGEPATH,IMAGE )
VALUES ( ?, ?,? ,? ,? , ?, ?,?)";
pstmt = conn.prepareStatement(sql);
FileInputStream fis;
File image = new File(values.getImgPath());
fis = new FileInputStream(image);
pstmt.setBinaryStream(8, (InputStream) fis, (int) (image.length()));
pstmt.execute();
Столбец image
имеет тип BLOB
, очевидно.