问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁有黑马程序员_超全面的JavaWeb视频教程vedio里面的资料、笔记,求分享...

发布网友 发布时间:2022-04-27 07:14

我来回答

5个回答

懂视网 时间:2022-05-02 05:54

mp3保存到数据库中!

在my.ini中添加如下配置!

max_allowed_packet=10485760

1 什么是大数据

所谓大数据,就是大的字节数据,或大的字符数据。标准SQL中提供了如下类型来保存大数据类型:

类型

长度

tinyblob

28--1B(256B)

blob

216-1B(64K)

mediumblob

224-1B(16M)

longblob

232-1B(4G)

tinyclob

28--1B(256B)

clob

216-1B(64K)

mediumclob

224-1B(16M)

longclob

232-1B(4G)

 

但是,在mysql中没有提供tinyclob、clob、mediumclob、longclob四种类型,而是使用如下四种类型来处理文本大数据:

类型

长度

tinytext

28--1B(256B)

text

216-1B(64K)

mediumtext

224-1B(16M)

longtext

232-1B(4G)

首先我们需要创建一张表,表中要有一个mediumblob(16M)类型的字段。

 

CREATE TABLE tab_bin(

id INT PRIMARY KEY AUTO_INCREMENT,

filenameVARCHAR(100),

data MEDIUMBLOB

);

 向数据库插入二进制数据需要使用PreparedStatement为原setBinaryStream(int, InputSteam)方法来完成。

con = JdbcUtils.getConnection();

String sql = "insert into tab_bin(filename,data) values(?, ?)";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, "a.jpg");

InputStream in = new FileInputStream("f:\a.jpg");

pstmt.setBinaryStream(2, in);

pstmt.executeUpdate();

 读取二进制数据,需要在查询后使用ResultSet类的getBinaryStream()方法来获取输入流对象。也就是说,PreparedStatement有setXXX(),那么ResultSet就有getXXX()。

con = JdbcUtils.getConnection();

String sql = "select filename,data from tab_bin where id=?";

pstmt = con.prepareStatement(sql);

pstmt.setInt(1, 1);

rs = pstmt.executeQuery();

rs.next();

 

String filename = rs.getString("filename");

OutputStream out = new FileOutputStream("F:\" + filename);

 

InputStream in = rs.getBinaryStream("data");

IOUtils.copy(in, out);

out.close();

   还有一种方法,就是把要存储的数据包装成Blob类型,然后调用PreparedStatement的setBlob()方法来设置数据

con = JdbcUtils.getConnection();

String sql = "insert into tab_bin(filename,data) values(?, ?)";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, "a.jpg");

File file = new File("f:\a.jpg");

byte[] datas = FileUtils.getBytes(file);//获取文件中的数据

Blob blob = new SerialBlob(datas);//创建Blob对象

pstmt.setBlob(2, blob);//设置Blob类型的参数

pstmt.executeUpdate();

con = JdbcUtils.getConnection();

String sql = "select filename,data from tab_bin where id=?";

pstmt = con.prepareStatement(sql);

pstmt.setInt(1, 1);

rs = pstmt.executeQuery();

rs.next();

 

String filename = rs.getString("filename");

File file = new File("F:\" + filename) ;

Blob blob = rs.getBlob("data");

byte[] datas = blob.getBytes(0, (int)file.length());

FileUtils.writeByteArrayToFile(file, datas);

上课老师敲的代码:

package cn.itcast.demo4;

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.Test;

import cn.itcast.demo3.JdbcUtils;

/**
 * 大数据
 * @author cxf
 *
 */
public class Demo4 {
 /**
 * 把mp3保存到数据库中。
 * @throws SQLException 
 * @throws IOException 
 * @throws FileNotFoundException 
 */
 @Test
 public void fun1() throws Exception {
 /*
  * 1. 得到Connection
  * 2. 给出sql模板,创建pstmt
  * 3. 设置sql模板中的参数
  * 4. 调用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
  * 1. 我们有的是文件,目标是Blob
  * 2. 先把文件变成byte[]
  * 3. 再使用byte[]创建Blob
  */
 // 把文件转换成byte[]
 byte[] bytes = IOUtils.toByteArray(new FileInputStream("F:/流光飞舞.mp3"));
 // 使用byte[]创建Blob
 Blob blob = new SerialBlob(bytes);
 // 设置参数
 pstmt.setBlob(3, blob);
 
 pstmt.executeUpdate();
 }
 
 /**
 * 从数据库读取mp3
 * @throws SQLException 
 */
 @Test
 public void fun2() throws Exception {
 /*
  * 1. 创建Connection
  */
 Connection con = JdbcUtils.getConnection();
 /*
  * 2. 给出select语句模板,创建pstmt
  */
 String sql = "select * from tab_bin";
 PreparedStatement pstmt = con.prepareStatement(sql);
 
 /*
  * 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:/lgfw.mp3");
  IOUtils.copy(in, out);
 }
 }
}

 

大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17

标签:javaweb   commons   logs   输出流   jdbcutil   height   lib   next   语句   

热心网友 时间:2022-05-02 03:02

Java前景好,就业薪资可观,人才缺口大,现在学习Java的平台有很多的,B站或者是腾讯课堂都是很不错的,我们在B站也分享了很多经典的Java教程,都是开源的,你可以去看看。

热心网友 时间:2022-05-02 04:20

这种东西在某宝上八块钱200多个g。

热心网友 时间:2022-05-02 05:55

可以去bilibili上查找的,bilibili上的资源还是比较丰富的

热心网友 时间:2022-05-02 07:46

jia邮箱a邮箱2426280786@qq.com我给你发全套,链接容易失效
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脾基本简介 人体有2个脾脏吗 百度百科 人的脾有几个 我是无锡的,公司需要办理健康证,请问应该到哪里去办理? 儿童健康小常识:让宝宝快乐成长 如何构建认罪认罚案件相对不起诉适用标准 相对不起诉概述 杨笠脱口秀称男人没底线,直言没有男人生活会更幸福,你认可吗? 每个人都是独立的个体都有自己生活的选择方式和权利,别人不要干涉... ...人观点,是我的自由、我的权利别人无权 干涉”这种观点 求Java web开发的视频教程 什么男士洗面奶能针对黑头的(必须要有效的!!!) 求崔希凡老师的javaweb视频 qq音乐中兑换了御MEN清洁去黑头竹炭洁面液怎么看兑换码 Javaweb视频教程,哪家的比较好啊? 梦见亲人死了,老公还在棺材里烧火是什么意思 求java webservice视频教程 竹炭黑头导出液和毛孔精华液怎么用 旁氏竹炭洗面奶能去黑头,痘印和缩小毛孔吗 baimaiss竹炭祛黑头洁面乳 男生有什么样的洗面奶和去黑头的要好些,而且实惠 我皮肤很白,我是男孩,鼻子有很多黑头,怎么去?用竹碳面膜去不干净,怎么办? 男生脸部出油,毛孔粗大有黑头 用什么洗面奶较好 我是男生脸上的毛孔很大还有黑头,怎么才能消灭这些东西。 男士用什么去黑头,最有效. 男士皮肤干燥+毛孔粗大+痘印+黑头,遇见这几种问题,应该用什么啊化妆品啊? 男生鼻子上的黑头该怎么有效的去除?有什么好的化妆品吗? 男生鼻子有黑头,边上还有点油,最好用什么洗面奶,和护肤霜,或者另外的护肤产品,不求很贵的。 男士洗面奶哪个牌子好?李医生的怎样 男人,鼻孔有黑头,脸上有油,用什么牌子洗面奶比较好? javaee百度云视频教程,javaweb教程视频 昨晚我梦见和死了的亲人一起烧火做饭,请问 javaweb的视频看谁的好 黑头多怎么去除?男生! 梦见自己亲人去世后在孝堂闪躺着然后自己作火烧了是怎么回事?我在家里昨晚梦见的。 梦到生病的亲人去世 并且有火烧身是怎么回事? 51自学网vip视频分享一个呗,计算机方面的特别是javaweb 梦见亲人死了烧纸,火灭后后出现一条蛇 梦见别人家死人了,然后烧火,我从火中走过 书的来源是什么 "书"字的来历是什么? “书”字的来历? 书是怎么由来的? 读书笔记要写书的来源,书的来源是什么意思?? 请问书的由来是什么? 书字是怎么由来的 书字的来源 书字的来历 关于书本的来源? 书的来源是什么啊``由谁发明的啊``