数据库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( 1 , 1 );
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.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( 1 , 1 );
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();
}
}
}
}
* 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();
}
}
}
}