首页后端开发JAVAjava将照片存到数据库和读取

java将照片存到数据库和读取

时间2023-10-21 18:19:03发布访客分类JAVA浏览911
导读: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
java怎么暂停线程和重启线程 java属性的get和set

游客 回复需填写必要信息