zoukankan      html  css  js  c++  java
  • java如何将图片以2进制的形式存入数据库

    存入图片 
    import java.sql.*; 
    import java.io.*; 
    public class InsertImg 
    { 
    public static void main(String args[]) 
    { 
    try{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    Connection con=DriverManager.getConnection("jdbc:odbc:DBImg"); 
    String sql = "insert into DBImg (image) values (?)"; 
    PreparedStatement pstmt=con.prepareStatement(sql); 
    FileInputStream fi=new FileInputStream("./room.jpg"); 
    pstmt.setBinaryStream(1,fi,fi.available()); 
    pstmt.execute(); 
    fi.close(); 
    pstmt.close(); 
    con.close(); 
    }catch(Exception e){System.out.println(e.getMessage());} 
    } 
    } 
    把图片取出输出到文件 
    import java.io.*; 
    import java.sql.*; 
    
    public class ImgRead 
    { 
    public static void main(String args[]) 
    { 
    try 
    { 
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    String url="jdbc:microsoft:sqlserver://BILLGATES:1433"; 
    Connection cn=DriverManager.getConnection(url,"sa","8310"); 
    Statement st=cn.createStatement(); 
    String str = "select img from test where id=1"; 
    ResultSet rs=st.executeQuery(str); 
    rs.next(); 
    InputStream in=rs.getBinaryStream(1); 
    
    FileOutputStream file = new FileOutputStream("./88.mp3"); 
    byte c[] = new byte[1024]; 
    
    int r = 0; 
    
    while ((r = in.read(c)) != -1){ 
    file.write(c,0,r); 
    
    } 
    
    
    
    file.close(); 
    in.close(); 
    
    
    
    
    } 
    catch(Exception e) 
    { 
    e.printStackTrace(); 
    } 
    } 
    } 
    把图片输出到JLabel控件 
    import java.awt.*; 
    import java.applet.*; 
    import java.awt.image.BufferedImage; 
    import com.sun.image.codec.jpeg.*; 
    import javax.swing.*; 
    import java.sql.*; 
    import java.io.*; 
    public class DisplayImg 
    { 
    public DisplayImg(){ 
    Image img=null; 
    try{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    Connection con=DriverManager.getConnection("jdbc:odbc:DBImg"); 
    Statement stmt=con.createStatement(); 
    String sql = "select image from DBImg"; 
    ResultSet rs=stmt.executeQuery(sql); 
    rs.next(); 
    InputStream in = rs.getBinaryStream(1); 
    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in); 
    img=decoder.decodeAsBufferedImage(); 
    rs.close(); 
    con.close(); 
    }catch(Exception e){System.out.println(e.getMessage());} 
    
    JFrame f=new JFrame(); 
    JLabel label=new JLabel(); 
    ImageIcon icon=new ImageIcon(img); 
    label.setIcon(icon); 
    JScrollPane jsp=new JScrollPane(label); 
    Container content=f.getContentPane(); 
    content.add(jsp); 
    f.setSize(535,400); 
    f.setVisible(true); 
    
    } 
    
    public static void main(String args[]){ 
    DisplayImg di=new DisplayImg(); 
    } 
    } 
    
    上面的程序数据库驱动不一致,自行修改一下.其中在Sqlserver中要存放图片的字段应选"image"类型
    
  • 相关阅读:
    ESLint 规则详解(一)
    我为什么不看好微信小程序
    两分钟实现安全完备的登录模块
    基于大数据的用户行为预测在前端性能优化上的应用
    《深入浅出NodeJS》mindmap
    如何设计一个异步Web服务——任务调度
    如何设计一个异步Web服务——接口部分
    【技能】眼镜清洗,如何不用眼镜布让眼镜一尘不染?
    【技能】小白耳机维修入门--各种耳机插头接线图--耳机维修汇总贴
    【电脑skill】怎么关闭wps热点?永久关闭wps右下角弹窗的方法!
  • 原文地址:https://www.cnblogs.com/qixin622/p/1814658.html
Copyright © 2011-2022 走看看