Java &引用;org.apache.derby.client。ClientBlob@518bb3a1&引用;而不是在数据库的Jtable上显示图像
“org.apache.derby.client。ClientBlob@518bb3a1“显示在jtable的列中,图像应该显示在该列中。我将gif图像作为blob存储到javaderby数据库中。这是什么意思 这是渲染器类:Java &引用;org.apache.derby.client。ClientBlob@518bb3a1&引用;而不是在数据库的Jtable上显示图像,java,mysql,Java,Mysql,“org.apache.derby.client。ClientBlob@518bb3a1“显示在jtable的列中,图像应该显示在该列中。我将gif图像作为blob存储到javaderby数据库中。这是什么意思 这是渲染器类: package JavaApplication29; import java.awt.Component; import javax.swing import javax.swing.table.DefaultTableCellRenderer; public
package JavaApplication29;
import java.awt.Component;
import javax.swing
import javax.swing.table.DefaultTableCellRenderer;
public class ImageRenderer extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table,Object
value, boolean isSelected,boolean hasFocus, int row, int column)
{
JLabel label = new JLabel();
if (value!=null) {
label.setHorizontalAlignment(JLabel.CENTER);
label.setIcon(new ImageIcon((byte[])value));
}
return label;
}
}
这是动作执行部分:
DefaultTableModel model = new DefaultTableModel();
String sqlQuery = "select COLUMN1, COLUMN2, COLUMN3, COLUMN4,
COLUMN5 from APP.DATA123 "
+ "where (COLUMN1 = ?) AND (COLUMN2 = ?) AND (COLUMN3 = ?) OR
(COLUMN2
= ?) AND (COLUMN3 = ?)";
String abc = jTextField2.getText();
String cba = (String)jComboBox1.getSelectedItem();
String cab = (String)jComboBox2.getSelectedItem();
String data = "jdbc:derby://localhost:1527/sample";
try (
Connection conn = DriverManager.getConnection(
data, "app", "app");
PreparedStatement st = conn.prepareStatement(sqlQuery)) {
Class.forName("org.apache.derby.jdbc.ClientDriver");
st.setString(1, abc);
st.setString(2, cba);
st.setString(3, cab);
st.setString(4, cba);
st.setString(5, cab);
ResultSet rec = st.executeQuery();
jTable1.getColumnModel().getColumn(6).setCellRenderer(new
ImageRenderer());
jTable1.setModel(DbUtils.resultSetToTableModel(rec));
st.close();
} catch (SQLException s) {
System.out.println("SQL Error: " + s.toString() + " "
+ s.getErrorCode() + " " + s.getSQLState());
} catch (Exception e) {
System.out.println("Error: " + e.toString()
+ e.getMessage());
toString()似乎是针对Blob对象的对象执行的-应该改为获取内容 toString()似乎是针对Blob对象的对象执行的-应该取而代之的是内容 你能分享有问题的代码吗?是的,我刚刚添加了它。仍然没有解决它你能分享有问题的代码吗?是的,我刚刚添加了它。还没有解决