【发布时间】:2016-06-27 14:19:11
【问题描述】:
如何使用 Java 应用下载 MySQL 数据库中的所有文件类型并防止一个文件替换另一个文件?
如何在我的filepath=("D:\\sch work\\skirt\\filename.pdf"); 中包含所有文件类型,以便我能够使用JTable 上的 Java 鼠标单击事件从 MySQL 数据库下载 pdf、docx、jpeg 等?
我有两个问题。
- 虽然我想打开 docs、JPEG 和 img 文件,但我只能打开 PDF 文件。
- 每次我从不同的行下载另一个文件时,它都会替换现有的文件。我想保留所有这些
请在下面找到我的鼠标点击事件代码,并请建议我应该添加什么以使其在需要时工作。
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
String filePath =("D:\\sch work\\skirt\\filename.pdf");
int BUFFER_SIZE = 4096;
try {
int cert_code= jTable1.getSelectedRow();
String tableClick=(jTable1.getModel().getValueAt(cert_code,3).toString());
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/employee_certificate","root","");
String sql= "SELECT cert FROM certificate WHERE cert_code =?" ;
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, tableClick);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
Blob blob = rs.getBlob("cert");
InputStream inputStream = blob.getBinaryStream();
OutputStream outputStream = new FileOutputStream(filePath);
int bytesRead = -1;
byte[] buffer = new byte[BUFFER_SIZE];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.close();
//JOptionPane.showMessageDialog(null,"file saved")
} }
catch (Exception e)
{JOptionPane.showMessageDialog(null,e);}
}
【问题讨论】: