Java 在jtable中检索图像
我用java编写了一个程序,从表中检索图像和文本数据。一切都是对的,只是当我试图从表中检索图像(Blob)时,我得到了一个累坏的结果集错误。我尝试用谷歌搜索它,但解释过于简洁。有人能帮我吗?请给我一个好的解释 这是密码Java 在jtable中检索图像,java,swing,jdbc,jtable,Java,Swing,Jdbc,Jtable,我用java编写了一个程序,从表中检索图像和文本数据。一切都是对的,只是当我试图从表中检索图像(Blob)时,我得到了一个累坏的结果集错误。我尝试用谷歌搜索它,但解释过于简洁。有人能帮我吗?请给我一个好的解释 这是密码 try { Class.forName(classforname); Connection con = DriverManager.getConnection(Connectionurl, username, password); String sql
try {
Class.forName(classforname);
Connection con = DriverManager.getConnection(Connectionurl, username, password);
String sql = "Select * from teacherdata where teachername='" + tf1.getText() + "'";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
rs.next();
String thename = rs.getString("teachername");
String sub1, sub2, sub3, sub4;
sub1 = rs.getString("sub1");
sub2 = rs.getString("sub2");
sub3 = rs.getString("sub3");
sub4 = rs.getString("sub4");
String sql2 = "select tid,tpic from teacherimages where teachername='" + tf1.getText() + "'";
PreparedStatement ps2 = con.prepareStatement(sql2);
ResultSet rs2 = ps2.executeQuery(sql2);
rs2.next();
String Tid = rs2.getString("tid");
Blob b = rs.getBlob("tpic");
byte barr
[] = new byte[(int) b.length()]; //an array is created but contains no data
barr = b.getBytes(3, (int) b.length());
Image im = jInternalFrame1.getToolkit().createImage(barr);
ImageIcon icon = new ImageIcon(im);
JLabel label = new JLabel(icon);
Object[] row = {
thename,
sub1,
sub2,
sub3,
sub4,
b,
Tid,
icon
};
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(row);
jTable1.setVisible(true);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SearchBox.class.getName()).log(Level.SEVERE, null, ex);
}
您没有在ResultSet上检查next的返回值
请考虑将代码更改为
if(result.next()){
// the logic
}
编辑
关于代码的进一步更改,请检查您的表是否为空。如果表为空,则不会返回值
当您在迭代或未检查结果集是否返回数据后尝试访问结果集时,会出现错误
while (resultSet.next()) {
//result set logic
}
//
resultset.getString[1] //<- will throw error Exhausted Resultset
while(resultSet.next()){
//结果集逻辑
}
//
resultset.getString[1]//请提供exception.java.sql.SQLException:detained resultset将完整堆栈跟踪存储到问题(格式化)。您有很多错误-资源未关闭-连接,结果集,…至少显示错误发生的行您确定rs.next()
或rs2.next()代码>返回了一个结果?当没有从数据库返回特定条件的记录时,以及当您尝试访问rs.getString(“teachername”);您将得到这个错误“耗尽的结果集”。没有结果是什么意思?错误java.sql.SQLException:expeated Resultset
表示查询未返回任何数据,您试图访问结果集Yes i know..但这怎么可能..我已在单独的面板上成功检索到图像。。。但是不能在表上这样做现在我尝试通过finction单独调用image对象,并将其用作返回值添加到表中。。