如何将大数据娴MySql 数据库
发布网友
我来回答
共1个回答
热心网友
1. 什么是大数据
1. 所谓大数据, 就是大的字节数据,或大的字符数据.
2. 标准 SQL 中提供了如下类型来保存大数据类型:
字节数据类型: tinyblob(256B), blob(K), mediumblob(16M), longblob(4G)
字符数据类型: tinyclob(256B), clob(K), mediumclob(16M), longclob(4G)
3. MySql 中处理字符的数据类型名称与 SQL 标准不同:
字符数据类型: tinytext(256B), text(K), mediumtext(16M), longtext(4G)
// 示例: 把 mp3 保存到数据库中// 需要在 MySql 配置文件中添加如下配置: `max_allowed_packet=10485760`// 因为 MySql 默认不允许数据包传输过大
public class Demo{ // 将 mp3 文件保存到数据库中
public void fun1(){ // 获取连接对象
Connection con = JdbcUtils.getConnection(); // 提供 sql 模板, 获取 PreparedStatement 对象
String sql = "INSERT INTO tab_bin VALUES(?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql); // 设置 sql 模板参数
pstmt.setInt(1,001);
pstmt.setString(2,"hello.mp3"); // mp3 保存为 blob 类型的数据
// 通过 commons-io 工具类, 将 mp3 转换成 byte[]
Byte[] bytes = IOUtils.toByteArray(new FileInputStream("/Users/姓名/Desktop/hello.mp3")); // 使用 bytes, 创建 Blob 对象
Blob blob = new SerialBlob(bytes);
pstmt.setBlob(3,blob); // 发送 sql 语句
pstmt.executeUpdate();
} // 从数据库中获取 mp3 数据
public void fun2(){ // 获取连接对象
Connection con = JdbcUtils.getConnection(); // 获取 PreparedStatement 对象
String sql = "SELECT * FROM tab_bin";
PreparedStatement pstmt = con.prepareStatement(sql); // 发送 sql 语句, 返回 ResultSet 对象
ResultSet rs = pstmt.executeQuery(); // 将 rs 中名为 data 列的数据
if(rs.next()){
Blob blob = rs.getBlob("data"); // 把 blob 转换成硬盘上的 mp3 文件
// 1. 通过 blob 得到输入流对象
// 2. 自己创建输出流对象
// 3. 把输入流的数据写入到输出流中
InputStream in = blob.getBinaryStream();
OutputStream out = new FileOutputStream("/Users/姓名/Document/world.mp3"); // 使用工具类中的方法
IOUtils.copy(in,out);
}
}
}