步骤
①获取连接。
②编写SQL语句。
③预编译SQL语句,获取ResultSet对象。
④获取数据。(对于Blob类型数据,使用getBlob()方法获取一个Blob对象)。
⑤调用Blob对象的getBinaryStream()方法获取一个输入流。
⑥使用输出流将数据进行保存。
示例:将上面添加的小张数据的头像保存到桌面。
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.DriverManager;
import java.util.Properties;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
public class BlobTest {
public static void main(String[] args) throws Exception {
//1.读取文件中的信息
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
//将用户名和密码封装在Properties中
Properties pros = new Properties();
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
Connection conn = (Connection) DriverManager.getConnection(url, user, password);
String sql = "insert into customers(name,email,birth,photo)values(?,?,?,?)";
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
ps.setObject(1, "远坂凛");
ps.setObject(2, "ybl@qq.com");
ps.setObject(3, "2000-01-01");
FileInputStream is1 = new FileInputStream(new File("ybl1.png"));
ps.setBlob(4, is1);
ps.execute();
conn.close();
ps.close();
}
}