• 向MySQL 中存储二进制数据文件


    package cn.itcast.demo;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    import cn.itcast.utils.JdbcUtils;
    
    public class Demo2 {
    
        /**
         
         create table testblob
         (
             id int primary key auto_increment,
             image longblob
         );
         
         */
        
        //向 Mysql数据库中存储二进制文件
        @Test
        public void add(){
            Connection conn = null;
            PreparedStatement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql = "insert into testblob(image) values(?)";
                st = conn.prepareStatement(sql);
                String path = Demo2.class.getClassLoader().getResource("01.jpg").getPath();
                st.setBinaryStream(1, new FileInputStream(path), (int) new File(path).length());
                int num = st.executeUpdate();
                if(num>0){
                    System.out.println("插入成功!!");
                }
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
        }
        
        @Test
        public void read(){
            Connection conn = null;
            PreparedStatement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql = "select image from testblob where id=?";
                st = conn.prepareStatement(sql);
                st.setInt(1, 1);
                rs = st.executeQuery();
                if(rs.next()){
                    InputStream in = rs.getBinaryStream("image");
                    int len = 0;
                    byte buffer[] = new byte[1024];
                    
                    FileOutputStream out = new FileOutputStream("c:\1.jpg");
                    while((len=in.read(buffer))>0){
                        out.write(buffer,0, len);
                    }
                    in.close();
                    out.close();
                }
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
        }
    
    }
    package cn.itcast.demo;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    import cn.itcast.utils.JdbcUtils;
    
    public class Demo2 {
    
        /**
         
         create table testblob
         (
             id int primary key auto_increment,
             image longblob
         );
         
         */
        
        //向 Mysql数据库中存储二进制文件
        @Test
        public void add(){
            Connection conn = null;
            PreparedStatement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql = "insert into testblob(image) values(?)";
                st = conn.prepareStatement(sql);
                String path = Demo2.class.getClassLoader().getResource("01.jpg").getPath();
                st.setBinaryStream(1, new FileInputStream(path), (int) new File(path).length());
                int num = st.executeUpdate();
                if(num>0){
                    System.out.println("插入成功!!");
                }
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
        }
        
        @Test
        public void read(){
            Connection conn = null;
            PreparedStatement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql = "select image from testblob where id=?";
                st = conn.prepareStatement(sql);
                st.setInt(1, 1);
                rs = st.executeQuery();
                if(rs.next()){
                    InputStream in = rs.getBinaryStream("image");
                    int len = 0;
                    byte buffer[] = new byte[1024];
                    
                    FileOutputStream out = new FileOutputStream("c:\1.jpg");
                    while((len=in.read(buffer))>0){
                        out.write(buffer,0, len);
                    }
                    in.close();
                    out.close();
                }
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
        }
    
    }
  • 相关阅读:
    说说渐进式增强
    Websocket模板
    Echart图表显示单位
    JS配置文件设置,共享变量抽取
    PHP处理字符串的10个简单方法
    C#实现只许一个实例运行(使用mutex类)
    实现PHP基本安全11条
    PHP开发不能违背的安全规则
    Querying a motor position
    log info
  • 原文地址:https://www.cnblogs.com/lichone2010/p/3178670.html
Copyright © 2020-2023  润新知