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
