您的位置:首页 > 编程语言 > Java开发

使用java将mp3文件写入mysql数据库中

2017-06-13 20:08 681 查看
package com.starry.exersise;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.sql.rowset.serial.SerialBlob;

import org.apache.commons.io.FileUtils;
import org.junit.Test;
/**
* 复制mp3文件到mysql数据库中的两种方法
*
* 方法一:
* 		整体思路	1:新建一个input输入流读取MP3文件内容
* 				2:将读取到的mp3文件写入byte数组中
* 				3:连接数据库,将文件写入数据库中(数据类型为blob类型)
* 方法二: 第三方类库中的方法
*
* @author Starry
*
*/
public class InputMp3 {
//定义需要使用的变量
static Connection con=null;//创建一个连接数据库的对象
static PreparedStatement pst=null;//定义一个向数据库发送sql与语句的对象
@Test
public void test() throws IOException, SQLException{
//调用方法1
//method1();
//调用方法2
method2();
}

/**
* 方法一
* @throws IOException
* @throws SQLException
*/
public void method1() throws IOException, SQLException{
//新建一个input输入流用来读取mp3
InputStream in=new FileInputStream("C:\\新建文件夹 (2)\\b.mp3");
//定义一个byte数组(这种方法不知道文件有多大,所以我写了个一千万)
byte[] b=new byte[10000000];
int len=0;
while((len=in.read(b))!=-1){
}
//定义一个连接
con=MyJDBCUtil.getConnection();
//定义一个sql语句(这个语句是我自己瞎写的)
String sql="insert  into table2 value(1,null,null,?)";
//定义一个向数据库发送sql语句的对象
pst=con.prepareStatement(sql);
//创建一个blob对象,把数组写入此对象
Blob blob=new SerialBlob(b);
//将数据写入数据库中
pst.setBlob(1, blob);
//查看修改了几行语句
int sa=pst.executeUpdate();
System.out.println("一共执行了:"+sa+"行语句");
in.close();
}

/**
* 方法二
* @throws IOException
* @throws SQLException
*/
public void method2() throws IOException, SQLException{
// 第三方类库的方法     网上下载个fileutils的包
// 此方法直接返回byte数组
byte []b=null;
b=FileUtils.readFileToByteArray(new File("C:\\新建文件夹 (2)\\b.mp3"));

//下面步骤和上面相同
//定义一个连接
con=MyJDBCUtil.getConnection();
//定义一个sql语句(这个语句是我自己瞎写的)
String sql="insert  into table2 value(1,null,null,?)";
//定义一个向数据库发送sql语句的对象
pst=con.prepareStatement(sql);
Blob blob = new SerialBlob(b);
pst.setBlob(1, blob);
int result = pst.executeUpdate();
System.out.println("受影响的行数:" +result);
}

}
starry.每天进步一点点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mysql 数据库 sql