1------------------JDBC--------------------Mysql
public static void save(int id,String name,String f) throws Exception{
Connection con=JdbcUtil_MySql.getConnection();
FileInputStream fis = new FileInputStream(f);
String sql = "insert into shop(id,name,images) values(?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1,id);
pstmt.setString(2,name);
pstmt.setBinaryStream(3, fis,f.length());
pstmt.executeUpdate();
fis.close();
pstmt.close();
con.close();
}
public static void find(int id,String f) throws Exception{
Connection con=JdbcUtil_MySql.getConnection();
String sql="select images from shop where id=?";
PreparedStatement pstm=con.prepareStatement(sql);
pstm.setInt(1, id);
ResultSet rs=pstm.executeQuery();
InputStream is=null;
if(rs.next()){
is=rs.getBlob(1).getBinaryStream();
}
FileOutputStream fos=new FileOutputStream(f);
byte[] b=new byte[1024];
int m;
while((m=is.read(b))!=-1){
fos.write(b,0, m);
}
fos.flush();
fos.close();
is.close();
System.out.println("成功");
}
2------------------JDBC--------------------Oracle
import java.sql.Blob;
import oracle.sql.BLOB;
public static void save(int id,String name,String fileName) throws Exception{
String sql="insert into z_animal(id,name,images) values(?,?,?)";
Connection conn=JdbcUtil.getConnection();
conn.setAutoCommit(false);
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setInt(1,id);
pstm.setString(2,name);
pstm.setBlob(3,BLOB.empty_lob());
pstm.executeUpdate();
if(pstm!=null) pstm.close();
String sql2="select images from z_animal where id=? for update";
pstm=conn.prepareStatement(sql2);
pstm.setInt(1,id);
ResultSet rs=pstm.executeQuery();
BLOB blob=null;
if(rs!=null&&rs.next()){
blob=(BLOB) rs.getBlob("images");
}
FileInputStream fis=new FileInputStream(fileName);
OutputStream os=blob.setBinaryStream(0);
byte[] bytes=new byte[10240];
int len;
while((len=fis.read(bytes))>0){
os.write(bytes,0,len);
}
os.close();
fis.close();
String sql3="update z_animal set images=? where id=?";
pstm=conn.prepareStatement(sql3);
pstm.setBlob(1,blob);
pstm.setInt(2,id);
pstm.executeUpdate();
conn.commit();
if(pstm!=null) pstm.close();
if(conn!=null) conn.close();
}
--------------------------------------------------------------
public static void find(int id) throws Exception{
String sql="select images from z_animal where id =?";
Connection conn=JdbcUtil.getConnection();
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setInt(1,id);
ResultSet rs=pstm.executeQuery();
rs.next();
Blob blob=rs.getBlob(1);
InputStream is=blob.getBinaryStream();
FileOutputStream fos=new FileOutputStream("d://zhouhr_work//sd0906_2.jpg");
int len=0;
byte[] bytes=new byte[10240];
while((len=is.read(bytes))>0){
fos.write(bytes,0, len);
fos.flush();
}
fos.flush();
is.close();
fos.close();
rs.close();
pstm.close();
conn.close();
System.out.println("成功");
}
3------------------Hibernate--------------------Oracle
public static void save(Animal a){
Session session=HibernateUtil.getSession();
Transaction t=session.beginTransaction();
session.save(a);
t.commit();
session.close();
}
public static Animal find(int id){
Session session=HibernateUtil.getSession();
Transaction t=session.beginTransaction();
Criteria c=session.createCriteria(Animal.class);
c.add(Expression.eq("id",id));
Animal a=(Animal) c.uniqueResult();
t.commit();
return a;
}
import java.sql.Blob;
public static void main(String[] args) throws Exception {
// Animal a=new Animal();
// a.setName("animal");
// Blob blob=Hibernate.createBlob(new FileInputStream("d://zhouhr_work//sd0906.jpg"));
// a.setImage(blob);
// save(a);
Animal a=find(21);
Blob b=a.getImage();
FileOutputStream fos=new FileOutputStream("d://zhouhr_work//sd090602.jpg");
InputStream is=b.getBinaryStream();
int len=0;
byte[] by=new byte[10240];
while((len=is.read(by))>0){
fos.write(by,0,len);
}
fos.flush();
is.close();
fos.close();
}