首先准备两首mp3歌曲:
然后进行代码测试:
package jdbcDemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.rowset.serial.SerialBlob;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
import JDBC.JdbcUtils;
public class demo1 {
@Test
public void toSave() {
try {
// 得到数据库连接对象
Connection conn = JdbcUtils.getConnection();
// SQL模板
String sql = "INSERT INTO tab_bin VALUES(?,?,?)";
// 绑定模板
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, 2);
pstmt.setString(2, "黄昏 - 小阿七.mp3");
// 把文件转换为字节数组
byte[] byt = IOUtils.toByteArray(new FileInputStream("E:\\Program File\\LXMusic\\DownLoad\\黄昏 - 小阿七.mp3"));
// 使用字节数组和Blob实现子类创建Blob对象
Blob blob = new SerialBlob(byt);
pstmt.setBlob(3, blob);
// 执行
pstmt.executeUpdate();
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
@Test
public void getData() throws Exception {
try {
// 得到数据库连接对象
Connection conn = JdbcUtils.getConnection();
// SQL模板
String sql = "SELECT * FROM tab_bin";
// 绑定模板
PreparedStatement pstmt = conn.prepareStatement(sql);
// 执行并得到ResultSet对象
ResultSet rs = pstmt.executeQuery();
if(rs.next()) { // 将光标移动到第一行
rs.next(); // 存放第二首
Blob blob = rs.getBlob("data");
OutputStream out = new FileOutputStream("D:" + File.separator + "hh.mp3");
InputStream input = blob.getBinaryStream();
IOUtils.copy(input, out);
out.close();
input.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
先将存入SQL:
然后从SQL取出存入硬盘:
如果存入SQL的过程中报错packet。。。是因为没有设置MySQL的最大允许传输信息包的值,参考:
1 | https: //www.cnblogs.com/0099-ymsml/p/16224380.html |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)