如何制作下载按钮以检索sql数据库中的pdf文件?(java swing)
大家好!我正在尝试使用JavaSwing创建一个桌面应用程序,用户可以将pdf文件上传到mysql数据库。我已经在应用程序中完成了上载部分,但是在应用程序中创建下载按钮时遇到了问题。如何制作下载按钮以检索sql数据库中的pdf文件?(java swing),java,mysql,sql,pdf,Java,Mysql,Sql,Pdf,大家好!我正在尝试使用JavaSwing创建一个桌面应用程序,用户可以将pdf文件上传到mysql数据库。我已经在应用程序中完成了上载部分,但是在应用程序中创建下载按钮时遇到了问题。download按钮的功能是检索mysql数据库中的pdf文件,然后将其下载到用户计算机中 以下是我在从中插入pdf文件时发现的内容 上面的链接已经有了获取pdf数据的功能,但我似乎不明白如何在我的下载按钮中实现它 public void upload(Connection conn,String filenam
download
按钮的功能是检索mysql数据库中的pdf
文件,然后将其下载到用户计算机中
以下是我在从中插入pdf文件时发现的内容
上面的链接已经有了获取pdf数据的功能,但我似乎不明白如何在我的下载按钮中实现它
public void upload(Connection conn,String filename) {
int len;
String query;
PreparedStatement pstmt;
try {
File file = new File(filename);
FileInputStream fis = new FileInputStream(file);
len = (int)file.length();
query = ("insert into fileStorage VALUES(?,?,?)");
pstmt = conn.prepareStatement(query);
pstmt.setString(1,file.getName());
pstmt.setInt(2, len);
//method to insert a stream of bytes
pstmt.setBinaryStream(3, fis, len);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
我遇到的问题是为我的下载按钮创建一个函数。如何从数据库中检索文件,并在单击“下载”按钮后同时下载。是的,很遗憾,我不知道您的表格式,但是我们应该能够创建一个准备好的语句,从数据库中获取文件的原始字节。下面将从数据库中获取字节数组,然后根据原始字节创建一个新文件(如有必要)
publicstaticvoidmain(字符串[]args){
试一试{
字节[]下载=下载(空,“测试”);
Path output=Path.get(“my”、“output”、“file.pdf”);
文件.write(输出、下载、StandardOpenOption.write、StandardOpenOption.CREATE\u NEW);
}catch(IOException | SQLException e){
抛出新的RuntimeException(“哦,出了点问题!”,e);
}
}
静态字节[]下载(连接,字符串文件名)引发SQLException{
try(PreparedStatement语句=connection.prepareStatement(“从文件存储中选择*文件名=?”){
statement.setString(1,文件名);
try(ResultSet results=statement.getResultSet()){
if(results.next()){
返回结果.getBytes(“文件内容”);
}
}
}
抛出新的IllegalStateException(“找不到此名称的文件”);
}
澄清您遇到问题的部分:创建按钮、设置按钮上的操作、从数据库获取和元素、在本地存储中存储内容。我在路径和标准OpenOption
中遇到错误,因此我导入了以下导入java.nio.file.Files文件
,导入java.nio.file.Path
,导入java.nio.file.path代码>,导入java.nio.file.StandardOpenOption代码>我是否导入了正确的类?错误消失了,但我仍然无法理解代码是否成功运行,因为我仍然没有在计算机中看到检索文件。顺便说一句,Path output=Path.get(“my”,“output”,“file.pdf”)代码>平均值?这些是正确的导入。你做了我指出的必要的改变了吗?如果出现错误,main(字符串[])将抛出异常。在顶层查找文件,而不是在/src/main/resources中。很抱歉,这就是实际发生的情况,我做的第一件事是创建一个类download.java
,然后将代码粘贴到main中,并将静态代码粘贴到main方法的外部。更改了需要更改的内容,然后在运行代码后,我在控制台中遇到一个错误错误:找不到或加载主类应用程序。下载,然后我将代码粘贴到gui文件中,而主中的代码转到按钮。然后我运行代码,没有得到任何错误,但不知道在哪里查找检索到的文件。我很抱歉,但很遗憾,我无法进一步帮助您。