Java 类型为(字节)的MySQL字段如何显示和“单击打开”
我已经插入并可以检索文件pdf,xls,png等没有问题,但我也想显示的方式,我可以点击它打开一些组件,也许文件。这是一回事。 另一个是,我还需要更新一个列中包含此文件的记录,对于这一部分,我还没有解决方案,但检索该文件以再次插入它。 因此,任何建议都是非常受欢迎的。 我使用的是MySQL、netbeans,记录的详细信息显示在JTable中Java 类型为(字节)的MySQL字段如何显示和“单击打开”,java,mysql,swing,Java,Mysql,Swing,我已经插入并可以检索文件pdf,xls,png等没有问题,但我也想显示的方式,我可以点击它打开一些组件,也许文件。这是一回事。 另一个是,我还需要更新一个列中包含此文件的记录,对于这一部分,我还没有解决方案,但检索该文件以再次插入它。 因此,任何建议都是非常受欢迎的。 我使用的是MySQL、netbeans,记录的详细信息显示在JTable中 private void jBsalvarArquivoActionPerformed(java.awt.event.ActionEvent evt)
private void jBsalvarArquivoActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser file = new JFileChooser();
file.setFileSelectionMode(JFileChooser.FILES_ONLY);
int i = file.showSaveDialog(null);
if (i == 1) {
} else {
File arquivo = file.getSelectedFile();
JtextFieldLocalArquivo.setText(arquivo.getPath());
String path = arquivo.getPath();
}
}
下面是我插入该文件以及其他详细信息的时间
try {
String newPath = path;
FileInputStream input = null;
File theFile = new File(newPath);
input = new FileInputStream(theFile);
byte[] bytes = IOUtils.toByteArray(input);
condutorInfracao.setAnexoAuto(bytes);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "File Not Loaded!");
}
更新其中的代码部分:
try {
stmt = con.prepareStatement("Select * From responsabilidade where respons_descr = '" + (String) jCResponsabilidadeDescr.getSelectedItem() + "'");
ResultSet r = null;
r = stmt.executeQuery();
List<Responsabilidade> objList = new ArrayList<Responsabilidade>();
if (r.next()) {
Responsabilidade obj = new Responsabilidade();
obj.setResponsId(r.getInt("respons_id"));
obj.setResponsDescr(r.getString("respons_descr"));
objList.add(obj);
condutorInfracao.setResponsabilidade(obj);
r.close();
stmt.close();
}
} catch (Exception ex) {
System.out.println(ex);
}
您必须将该文件下载到本地磁盘,然后可以在系统注册的应用程序中使用类似的方法打开该文件。你是对的。如果您想更新文件,您需要对数据库中的行执行更新谢谢您的回答,但是在这次更新中,我想更新其他字段,我想保留已保存的文件的字段字节。不是新的,但即使我在单击该行的更新时没有更改字段字节,字段字节也会被更新为空…您的更新语句在哪里。?我已经更新了上面的代码,但我认为另一个问题可以给我一个方向:我如何更新行中的某些字段,而让其他字段保持不变?我认为问题可能在于我的操作方式…只是不要在update语句中设置字段的值。。。
public void update() {
try {
transacao = sessao.beginTransaction();
sessao.update(param_set);
transacao.commit();
} catch (HibernateException erro) {
JOptionPane.showConfirmDialog(null, "Error!" +erro.getMessage());
transacao.rollback();
}
}