tentando recuperar texto e blob do mysql para jtable
Então, eu estou tentando recuperar um texto e um blob (imagem) de um banco de dados dentro de um jtable de uma maneira agradável. Por alguma razão, sempre que tento recuperar o blob, recebo o seguinte:
java.io.ByteArrayInputStream@1cb63183
em todas as outras colunas, embora eu tenha especificado que o blob está no dia 8!
Aqui está uma captura de tela:
http://s24.postimg.org/t71o3izlh/Screen_Shot_2016_01_28_at_1_26_55_PM.png
Aqui está o meu código
sql = "SELECT * FROM Products";
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
// getting the columns number
int columnsNumber = rsmd.getColumnCount();
// setting a vector with columns number
Vector columns = new Vector(columnsNumber);
// adding column names
for(int i=1; i<=columnsNumber; i++)
columns.add(rsmd.getColumnName(i));
// setting a vector with row data
Vector rowdata = new Vector();
Vector row;
JTable table = new JTable(rowdata, columns);
while(rs.next())
{
row = new Vector(columnsNumber);
for(int i=1; i<=columnsNumber; i++)
{
// adding the rows in "row vector"
InputStream binaryStream = rs.getBinaryStream(i);
row.add(rs.getString(i));
row.add(rs.getBinaryStream(8));
}
// adding the rows in the database
rowdata.add(row);
}
Alguém poderia me explicar por que essa abordagem não está funcionando?
a propósito, se eu removi esta linha:
row.add(rs.getBinaryStream(8));
O problema de obter o java.io.ByteArrayInputSteam desaparecerá, no entanto, apenas obterei a representação de texto da imagem.
na verdade, não é uma duplicata porque estou tentando adicioná-lo em uma coluna específica, dependendo de quantas linhas eu tenho, que são AMBOS texto e imagem. Por isso, é feito dinamicamente e o sql tem a imagem e o texto ao mesmo tempo, ao contrário da "possível duplicação"
Desde já, obrigado!