public
class
TestBlob {
//写入Blob
@Test
public
void
WriteBlob(){
Connection conn =
null
;
PreparedStatement ps =
null
;
try
{
conn = JDBCUtil. getConnection();
String sql =
"insert into picture (picture) values(?)"
;
ps = conn.prepareStatement(sql);
//用BLOB数据库中插入图片
File file =
new
File(
"D:/20150720.jpeg"
);
InputStream in =
new
FileInputStream(file);
//用二进制形式插入
ps.setBinaryStream(1, in,(
int
)file.length());
ps.executeUpdate();
}
catch
(Exception e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
finally
{
JDBCUtil. freeAll(conn,
null
, ps);
}
}
//读取blob
@Test
public
void
readBlob(){
Connection conn =
null
;
PreparedStatement ps=
null
;
ResultSet rs=
null
;
try
{
conn = JDBCUtil. getConnection();
String sql =
"select * from picture where id = 2"
;
ps= conn.prepareStatement(sql);
rs= ps.executeQuery();
while
(rs.next()){
int
id = rs.getInt(1);
System.
out
.println(id+
"--"
);
Blob pic= rs.getBlob(2);
InputStream in = pic.getBinaryStream();
OutputStream out =
new
FileOutputStream(
"E:/20150720.jpg"
);
byte
[] buffer =
new
byte
[1024];
int
hashred = 0;
while
((hashred = in.read(buffer)) != -1){
out.write(buffer,0,hashred);
}
in.close();
out.close();
}
}
catch
(SQLException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(FileNotFoundException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(IOException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
finally
{
JDBCUtil. freeAll(conn, rs, ps);
}
}
}