• 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"类型
    
  • 相关阅读:
    bert系列一:《Attention is all you need》论文解读
    维特比算法及python实现
    手写高斯混合聚类算法
    强化学习应用于游戏Tic-Tac-Toe
    EM算法分析
    手写LVQ(学习向量量化)聚类算法
    手写k-means算法
    tensorflow增强学习应用于一个小游戏
    Opencv之LBP特征(算法)
    手写朴素贝叶斯(naive_bayes)分类算法
  • 原文地址:https://www.cnblogs.com/qixin622/p/1814658.html
Copyright © 2020-2023  润新知