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();
                }
            }
        }
    }
  • 相关阅读:
    (spring-第15回【IoC基础篇】)容器事件
    javascript笔记2-引用类型
    php namespace use 命名空间
    mysql性能优化(二)
    mysql常用命令
    关于有效的性能调优的一些建议[转]
    apache htaccess
    php 换行 空格分割处理
    一些比较好的博文
    php & 引用
  • 原文地址:https://www.cnblogs.com/qixin622/p/1525300.html
Copyright © 2011-2022 走看看