Я пытался более точно распознать файл BLOB-объекта (pdf, word) в ячейку, и в результате получил con.mysql.cj.jdbc.Blob
.Если кто-то может помочь определить его и сделать так, чтобы строка появлялась и при нажатии открывал файл.Я не знаю, в чем проблема с моим кодом.
{
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
ArrayList<Project> projects = new ArrayList<Project>();
initComponents();
DefaultComboBoxModel dcbm = new DefaultComboBoxModel(new String[]{"Project Name", "Department"});
ComboBoxF.setModel(dcbm);
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/gpms_DB?autoReconnect=true&useSSL=false" , "root" , "admin");
String SQL = "SELECT * FROM `project`";
pst = con.prepareStatement(SQL);
rs = pst.executeQuery();
while (rs.next()) {
projects.add(new Project(rs.getInt("Project_id"), rs.getString("name"), rs.getDate("Submission_Date"),rs.getBlob("file"), rs.getString("Description"), rs.getInt("Doctors_id")));
}
DefaultTableModel model = new DefaultTableModel(0, rs.getMetaData().getColumnCount()){
public boolean isCellEditable(int x , int y){
return false;
}
};
jTable2.setModel(model);
model.setColumnIdentifiers(new String[]{"Project ID", "Project Name", "Submission Date","File", "Description", "Doctor ID"});
Object[] row = new Object[6];
for (int i = 0; i < projects.size(); i++) {
row[0] = projects.get(i).getPid();
row[1] = projects.get(i).getName();
row[2] = projects.get(i).getSubmissionDate();
row[3] = projects.get(i).getfile();
row[4] = projects.get(i).getDescription();
row[5] = projects.get(i).getDid();
model.addRow(row);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}