java向数据库存取图片

JAVA向数据库中存取图片的演示
在网上看到很多贴子,问JAVA怎样才能将图片存入数据库,并从数据中显示出来。是啊,我当年也问过这样的问题,也在网上找过,不过都没有一个完整的程序,一个很简单的程序,让我走了很多的弯路,后来写的东西多了,问题就迎刃而解了,现写了一个完整的程序并把源程序贴出来,希望对你了解JAVA这方面的功能有一点帮助。由于没有写注解,如有什么不能理解的,可以发电子邮件给我(zhliuyou@https://www.360docs.net/doc/375120641.html,),同时我也很乐意与喜欢JAVA的朋友们讨论JAVA方面问题:



注:本程序的在WINXP+SQLserver2000+JDK1.5测试通过



package org.liuyou.insertphotodemo;



/**

*

Title: InsertPhotoDemo



*

Description: 本程序用于演示向数据库中插入图片及从数据库中读取图片



*

Copyright: Copyright (c) 2005



*

Company: LIUYOU STUDIO



* @author liuyou(zhliuyou)

* @version 1.0

*/

import java.io.*;

import java.sql.*;

import javax.swing.*;

import java.awt.*;

public class InsertPhotoDemo

{

public static void main(String args[])

{

JFrame f = new JFrame();

JLabel label = new JLabel();

try

{

/* 加载数据库驱动程序 */

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

/* 获取连接,这里用的SQLServer2000*/

Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://10.1.5.110:1433;DatabaseName=MiniTuiBaoRobot","zhliuyou","zhliuyou");

/* 存入图片 */

String sql="insert into TEST values(?,?)";

PreparedStatement pstmt = con.prepareStatement(sql);



File file = new File("e:/study/javafile/InsertPhotoDemo/test.jpg");

System.out.println(file.length());

FileInputStream fis = new FileInputStream(file);

pstmt.setBinaryStream(1,fis,(int)file.length());

pstmt.setString(2,"liuyou");

pstmt.executeUpdate();

pstmt.close();

fis.close();



/* 读取图片 */

byte [] imageByte;

String readSql = "select PHOTO from TEST where TESTID=?";

PreparedStatement pstm = con.prepareStatement(readSql);

pstm.setString(1,"1");

ResultSet rs = pstm.executeQuery();

if(rs.next())

{

imageByte = rs.getBytes(1);

Image selectPhoto = Toolkit.getDefaultToolkit().createImage(imageByte);

ImageIcon icon = new ImageIcon(selectPhoto);

label.setIcon(icon);

}

pstm.close();

rs.close();

}catch(ClassNotFoundException ex)

{

ex.printStackTrace();

}catch(SQLException ex)

{

ex.printStackTrace();

}catch(FileNotFoundException ex)

{

ex.printStackTrace();

}catch(Exception ex)

{


ex.printStackTrace();

}

Container contentPane = f.getContentPane();

contentPane.setLayout(new BorderLayout());

contentPane.add(label,BorderLayout.CENTER);

f.setTitle("JAVA向数据库中存取图片的演示");

f.pack();

f.show();

}

}

相关文档
最新文档