zoukankan      html  css  js  c++  java
  • 把图片存入数据库

    数据库SQL SERVER 2000

    /*
    ---------------表结构------------
    表名:student2

    +--------+-------------+------+-----+---------+-------+
    | Field  | Type        | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | id     | int(4)      | NO   | PRI | NULL    |       |
    | name   | varchar(20) | YES  |     | NULL    |       |
    | stupic | image        | YES  |     | NULL    |       |
    +--------+-------------+------+-----+---------+-------+

    */

    把图片存入数据库

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     
    */
    package storeblob;

    import java.sql.*;
    import java.io.*;

    /**
     *
     * 
    @author Administrator
     
    */
    public class StoreBLOB {

        
    /**
         * 
    @param args the command line arguments
         
    */
        
    public static void main(String[] args) {
            String url 
    = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

            String user 
    = "sa";//这里替换成你自已的数据库用户名
            String password = "";//这里替换成你自已的数据库用户密码

            Connection con 
    = null;
            PreparedStatement ps 
    = null;
            InputStream in 
    = null;
            
    try {
                con 
    = DriverManager.getConnection(url, user, password);
                
    //从本地硬盘读取一张读片
                in = new FileInputStream("d:/111/001.png");
                ps 
    = con.prepareStatement("insert into student2 values(?,?,?)");
                ps.setInt(
    11);
                ps.setString(
    2"qixin");
                ps.setBinaryStream(
    3, in, in.available());
                ps.executeUpdate();
            } 
    catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (SQLException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    finally {
                
    try {
                    
    //关闭流
                    if (in != null) {
                        in.close();
                    }
                } 
    catch (IOException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
    try {
                    
    //关闭相关连接
                    ps.close();
                    con.close();
                }
                
    catch(Exception e)
                {
                    e.printStackTrace();
                }
            }

        }
    }

    把图片从数据库中取出

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     
    */
    package storeblob;

    import java.io.*;
    import java.sql.*;

    /**
     *
     * 
    @author Administrator
     
    */
    public class GetBLOB {

        
    public static void main(String[] args) {
            String url 
    = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

            String user 
    = "sa";//这里替换成你自已的数据库用户名
            String password = "";//这里替换成你自已的数据库用户密码
            Connection con = null;
            Statement st 
    = null;
            ResultSet rs 
    = null;
            InputStream in 
    = null;
            OutputStream out 
    = null;

            
    try {
                con 
    = DriverManager.getConnection(url, user, password);
                st 
    = con.createStatement();
                rs 
    = st.executeQuery("select stupic from student2 where id=1");
                rs.next();    
    //将光标指向第一行
                
    //从rs中读取stupic放进InputStream对象中
                in = rs.getBinaryStream("stupic");
                
    //申明byte数组,用来存放图片流
                byte[] b = new byte[40000];
                in.read(b);    
    //从InputStream对象中读取数据放进byte数组中
                
    //实例化OutputStream对象,在D盘创建一个图片文件
                out = new FileOutputStream("d:/222.jpg");
                
    //将文件输出,内容则为byte数组里面的数据
                out.write(b);
                out.flush();

            } 
    catch (SQLException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    finally {
                
    try {
                    
    if (in != null) {
                        in.close();
                    }
                    
    if (out != null) {
                        out.close();
                    }
                } 
    catch (IOException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
    try {
                    
    //关闭相关连接
                    rs.close();
                    st.close();
                    con.close();
                }
                
    catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    MSDN Magazine搞错了
    Visual Studio 2005中设置调试符号(Debug Symbols)
    BCB 6的问题
    吴裕雄天生自然Spring Boot使用Spring Data JPA实现人与身份证的一对一关系映射
    吴裕雄天生自然Spring BootSpring Data JPA
    吴裕雄天生自然Spring BootSpring Boot对JSP的支持
    吴裕雄天生自然Spring BootSpring Boot的异常统一处理
    吴裕雄天生自然Spring Boot使用Spring Data JPA实现Author与Article的一对多关系映射
    吴裕雄天生自然Spring Boot解决 Error creating bean with name 'entityManagerFactory' defined in class path resource
    吴裕雄天生自然Spring Boot@ExceptionHandler注解和@ControllerAdvice注解
  • 原文地址:https://www.cnblogs.com/qixin622/p/1525300.html
Copyright © 2011-2022 走看看