1、写入图片到mysql
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class SaveFileToDatabase {
public static void main(String[] args) throws Exception {
File file = new File("/Users/liyinlong/huozhe.png");
InputStream inputStream = new FileInputStream(file);
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://10.10.101.140:31221/book?characterEncoding=utf-8", "root", "ZeuS@Middleware01");
String sql = "insert into book_info(book_name,book_image) values(?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "活着");
ps.setBinaryStream(2, inputStream, (int) file.length());
int rows = ps.executeUpdate();
System.out.println(rows + "行受影响");
ps.close();
con.close();
}
}
2、从mysql读取图片并保存到本地
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class ReadFileFromDatabase {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://10.10.101.140:31221/book?characterEncoding=utf-8", "root", "ZeuS@Middleware01");
String sql = "select book_name,book_image from book_info";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet resultSet = ps.executeQuery();
while (resultSet.next()) {
String book_name = resultSet.getString(1);
InputStream binaryStream = resultSet.getBinaryStream(2);
String filePath = "/Users/liyinlong/huozhe_tmp.png";
File file = new File(filePath);
OutputStream outputStream = new FileOutputStream(file);
int res = 1;
while (res > 0) {
byte[] bytes = new byte[1024];
binaryStream.read(bytes);
res = binaryStream.available();
outputStream.write(bytes);
}
System.out.println(book_name + ":" + filePath);
}
ps.close();
con.close();
}
}