java向数据库存取图片
- 格式:doc
- 大小:38.50 KB
- 文档页数:5
java向数据库存取图片.txt吃吧吃吧不是罪,再胖的人也有权利去增肥!苗条背后其实是憔悴,爱你的人不会在乎你的腰围!尝尝阔别已久美食的滋味,就算撑死也是一种美!减肥最可怕的不是饥饿,而是你明明不饿但总觉得非得吃点什么才踏实。JAVA向数据库中存取图片的演示
在网上看到很多贴子,问JAVA怎样才能将图片存入数据库,并从数据中显示出来。是啊,我当年也问过这样的问题,也在网上找过,不过都没有一个完整的程序,一个很简单的程序,让我走了很多的弯路,后来写的东西多了,问题就迎刃而解了,现写了一个完整的程序并把源程序贴出来,希望对你了解JAVA这方面的功能有一点帮助。由于没有写注解,如有什么不能理解的,可以发电子邮件给我(zhliuyou@),同时我也很乐意与喜欢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;Database Name=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();
}
}