java将照片存到数据库和读取
导读:Java是一种广泛使用的编程语言,它有着强大而灵活的功能,可以轻松处理各种数据。在许多项目中,存储和读取照片是必不可少的工作,而Java提供了多种方法来实现这个功能。将照片存储到数据库是实现这个目标的一种方法。这样可以使照片的访问更加方便,...
Java是一种广泛使用的编程语言,它有着强大而灵活的功能,可以轻松处理各种数据。在许多项目中,存储和读取照片是必不可少的工作,而Java提供了多种方法来实现这个功能。
将照片存储到数据库是实现这个目标的一种方法。这样可以使照片的访问更加方便,可以加快程序的执行速度,还可以保护照片的安全性。在Java中,可以使用以下代码将照片存储到数据库:
Connection conn = null; PreparedStatement pst = null; FileInputStream fis = null; try { conn = DriverManager.getConnection(url, user, password); pst = conn.prepareStatement("INSERT INTO photos (id, name, image) VALUES (?, ?, ?)"); pst.setInt(1, photo.getId()); pst.setString(2, photo.getName()); File file = new File(photo.getPath()); fis = new FileInputStream(file); pst.setBinaryStream(3, fis, (int) file.length()); pst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (pst != null) { pst.close(); } if (fis != null) { fis.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }
在上述代码中,我们建立了一个连接对象Conn,建立一个PreparedStatement对象pst,再使用FileInputStream将要存储的照片读入内存中,并使用setBinaryStream方法将读入的照片数据存储到数据库中。此外,在代码的结尾处,我们还需要注意关闭资源对象。
读取数据库中的照片同样也是一个必要的操作。当我们需要访问照片时,可以使用以下代码读取数据库中的照片:
Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, user, password); pst = conn.prepareStatement("SELECT image FROM photos WHERE name = ?"); pst.setString(1, name); rs = pst.executeQuery(); if (rs.next()) { InputStream is = rs.getBinaryStream(1); OutputStream os = new FileOutputStream(new File(filePath)); byte[] buffer = new byte[1024]; int len; while ((len = is.read(buffer)) != -1) { os.write(buffer, 0, len); } } } catch (SQLException | IOException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (pst != null) { pst.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }
代码中建立了一个连接对象Conn,一个PreparedStatement对象pst,然后使用getBinaryStream方法获取数据库中存储的照片数据,将数据读取到内存,并使用OutputStream输出到指定路径的文件中。同样,在代码的结尾处也需要注意关闭资源对象。
通过上述代码,我们可以方便地将照片存储到数据库中,并读取数据库中的照片数据,实现对图片的管理与展示。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java将照片存到数据库和读取
本文地址: https://pptw.com/jishu/504778.html