【对Blob对象的处理】//保存图片
public boolean savePhoto(String rid,String idcard){
Connection conn=null;
PreparedStatement pstmt=null;
FileInputStream file=null;
Statement stmt=null;
ResultSet rs=null;
InputStream in=null;
FileOutputStream out=null;
try {
//基本的jdbc操作
//Class.forName("oracle.jdbc.driver.OracleDriver");
//conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.3.245:1521:orcl", "cdc", "111111");
//从hibernate那获得connection
Session session = this.getSession();
conn =session.connection();
conn.setAutoCommit(false);
//if(rid == null || rid.equals("")){
//pstmt=conn.prepareStatement("insert into t_a_resident_archives(rid,idcard,photo) values(cdc_seq.NEXTVAL,?,?)");
//pstmt.setString(1, idcard);
//file=new FileInputStream("f:\\3.jpg");
//System.out.println(file.available());
//pstmt.setBlob(2, file);
//}else{
pstmt=conn.prepareStatement("update t_a_resident_archives set photo=? where rid=?");
pstmt.setString(2, rid);
file=new FileInputStream("f:\\3.jpg");
System.out.println(file.available());
pstmt.setBlob(1, file);
//}
pstmt.executeUpdate();
conn.commit();
//读文件
stmt=conn.createStatement();
String sql="select photo from t_a_resident_archives where rid=" + rid;
rs=stmt.executeQuery(sql);
byte[] buffer=new byte[1024];
Blob blob=null;
while(rs.next()){
blob=rs.getBlob(1);
}
in=blob.getBinaryStream();
//存放文件的路径
out=new FileOutputStream("D:\\888.jpg");
int number=in.read(buffer);
//把读取的数据放到字节数组,并写到文件中
while(number!=-1){
out.write(buffer,0,number);
number=in.read(buffer);
}
rs.close();
stmt.close();
file.close();
in.close();
out.close();
conn.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
推荐阅读
- ssh|Hibernate01 - 入门概念 搭建环境 api
- ssh|Hibernate03 -查询方式 OID hql QBC
- hibernate|hibernate异常——》org.hibernate.exception.GenericJDBCException: could not extract ResultSet
- MySQL|Hibernate异常
- ssh|jar作用(一)
- Hibernate|H2 数据库引擎
- struts|SSH(struts+spring+hibernate)迅速开发--第七章 用户注册的表单校验(3)
- Hibernate多对多的案列(学生和老师)
- Hibernate的配置文件配置