標准SQL中提供了八種大數據類型

上面四種是針對字節數據(二進制字符串類型,主要存儲圖片、音頻信息等),下面四種是針對字符數據(非二進制字符串類型,純文本文件)。
MySql中不使用標准SQL中針對字符數據的類型,而是使用

下面實現對mp3的存放,首先建一個表music

這里數據類型使用mediumblob類型,使用JDBC進行存儲
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.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import javax.sql.rowset.serial.SerialBlob; import org.apache.commons.io.IOUtils; import org.junit.Test; public class InsertBlog { /** * @throws SQLException * @throws FileNotFoundException * @throws IOException * @throws ClassNotFoundException * 從配置文件dbconfig.properties中讀取JDBC連接四大參數 * 使用IOutils包,需要導包 */ @Test public void insert() throws SQLException, FileNotFoundException, IOException, ClassNotFoundException { InputStream in = InsertBlog.class.getClassLoader().getResourceAsStream( "dbconfig.properties"); Properties pro = new Properties(); pro.load(in); String url = pro.getProperty("url"); String name = pro.getProperty("name"); String password = pro.getProperty("password"); String drivername = pro.getProperty("DriverClassName"); System.out.println(url + "" + name + "" + password + "" + drivername); Class.forName(drivername); Connection conn = DriverManager.getConnection(url, name, password); String sql = "insert into music values(?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, 1); ps.setString(2, "你還要我怎樣"); System.out.println(111); byte[] bytes = IOUtils .toByteArray(new FileInputStream("E:/你還要我怎樣.mp3")); System.out.println(111); Blob blob = new SerialBlob(bytes); ps.setBlob(3, blob); ps.executeUpdate(); } @Test public void find() throws IOException, ClassNotFoundException, SQLException { InputStream in = InsertBlog.class.getClassLoader() .getResourceAsStream("dbconfig.properties"); Properties pro = new Properties(); pro.load(in); String url = pro.getProperty("url"); String name = pro.getProperty("name"); String password = pro.getProperty("password"); String drivername = pro.getProperty("DriverClassName"); System.out.println(url + "" + name + "" + password + "" + drivername); Class.forName(drivername); Connection conn = DriverManager.getConnection(url, name, password); String sql = "Select * from music"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs=ps.executeQuery(); if(rs.next()){ Blob blob=rs.getBlob("data"); InputStream n=blob.getBinaryStream(); OutputStream out=new FileOutputStream("E:/大頭鬼.mp3"); IOUtils.copy(n,out); } } }


