【发布时间】:2020-06-06 12:37:42
【问题描述】:
在我正在进行的一个项目中,我有 showStudents.java,它使我能够在 jTable swing 组件中查看数据库中的所有学生。 jTable 正确显示,只是图像显示为
5 Debebe Gemesa 2020-02-07 Adama AB 0956852145 1 [B@522d8811
6 Samuel Gemeda 2020-02-05 Bahir Dar A+ 0986451278 1 [B@3330a9d5
最后一列应该是图像列。在数据库中,我有以下学生表的值
6 Samuel Gemeda 2020-02-05 Bahir Dar A+ 0986451278 1 [BLOB - 32 B]
我的 showStudents.java 中有这个方法,可以让我查看数据库中的所有列。
public void showRecord(){
try {
stmt = conn.createStatement();
String sql = "SELECT * FROM STUDENT";
ResultSet rs = stmt.executeQuery(sql);
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
【问题讨论】:
-
您必须将 blob 中的数据读入 Java 映像。
-
@NomadMaker 你能帮我做一些代码吗?
-
不在评论中。谷歌“java 显示 jpg 图像”(或您拥有的任何类型的图像)。例子很多。
-
try { stmt = conn.createStatement(); String sql = "SELECT * FROM STUDENT"; ResultSet rs = stmt.executeQuery(sql); Blob aBlob = rs.getBlob("photo"); InputStream is = aBlob.getBinaryStream(0, aBlob.length()); BufferedImage imag=ImageIO.read(is); Image image = imag; ImageIcon icon =new ImageIcon(image); jLabel2.setIcon(icon); jTable1.setModel(DbUtils.resultSetToTableModel(rs)); }但它显示的是java.sql.SQLException: Before start of the result set -
在结果集开始之前错误是在结果集上调用
next()之前调用getXXX方法的结果。结果集最初位于结果集之前。另外,请edit您的问题提供详细信息,不要将它们添加到cmets中。