开发者学堂课程【JDBC数据库开发入门:大数据】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/29
大数据
目标:把MP3转移到数据库。
在my.ini中添加如下配置!
max. allowed packet=10485760
大数据字节的类型:
类型
tinyblobe
blobe
mediumblobe
longblobe |
长度
2-1B (256B)
215.1B (64K)
224-1B (16M)
232-1B (4G) |
字符类型:
类型
tinydlobe
clobe
mediumdlobe
longclob |
长度
25-18 (256B)
215-18 (64K)
241B (16M)
2-1B (4G) |
具体保存步骤:
需要得到Blob:⑴有的是文件,目标是Blob⑵先把文件变成byte[]⑶再使用byte创建Blob
把mp3保存到数据库中:⑴得到Connection⑵给出sql模板,创建pstmt⑶设置sql模板中的参数⑷调用pstmt的executeUpdate()执行
例如:
Connection con = JdbcUtils. getConnection() ;
string sql = "insert into tab_ bin values(?,?, ?)";
Preparedstatement pstmt = con. prepareStatement (sql);
pstmt.setInt(1, 1);
pstmt.setstring(2, "流光飞舞.mp3");
Blob blob = null;
pstmt . setBlo(3,blob )
pstmt. executeUpdate();
把文件转换成byte[]
byte[] bytes . IoUtils. toByteArzay(new PileInputstream ("F:/流光飞舞 .mp3"));
Blob blob . nul 1
patmt . setBlob(3, blob) ;
pa tmt . executeUpdate()
从数据库中读取mp3
1. 创建Cohnectlon
Connection con = JdbcUtils. getConnection();
2.给出select语 句横板,创建pstmt
String sq1 = "select from tab bin";
Preparedstatement pstmt = con.prepareStatement(sq1) ;
.3. pstmt执行查询,得到Resultset
ResultSet rs = pstmt .executeQuery() ;
4.获取rs中名为data的列数据
if(rs.next()) {
Blob blob = rs.getBlob ("data");
.把Blob变成硬盘上的文件!
1.通过Blob得到输入流对象
2.自己创建输出流对象
3.把输入流的数据写入到输出流中
InputStream in = blob.getBinaryStream() ;
OutputStream out = new FileOutputStream("c:/1gfw .mp3");
Ioutils.copy(in, out) ;