Mysql中大數據類型的存取


標准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);
            }
    }

    
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM