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