大二进制文件写入数据库:
public class JdbcDemo2 {
public static void main(String[] args) {
//saveBlob();
readBlob();
}
public static void readBlob() {
//向数据库写入大的二进制文件
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn=JDBCUtil.getConnection();
String sql="select content from blobtest where id=?";
stmt=conn.prepareStatement(sql);
stmt.setInt(1, 1);
rs=stmt.executeQuery();
if(rs.next()){
InputStream in=rs.getBinaryStream(1);
FileOutputStream out= new FileOutputStream("E:\\2.jpg");
byte[] buf= new byte[1024];
int len=-1;
while((len=in.read(buf))!=-1){
out.write(buf);
}
in.close();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCUtil.release(conn, stmt, rs);
}
}
public static void saveBlob() {
//向数据库写入大的二进制文件
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn=JDBCUtil.getConnection();
String sql="insert into blobtest (content) values(?)";
stmt=conn.prepareStatement(sql);
File file= new File("d:\\1.jpg");
stmt.setBinaryStream(1, new FileInputStream(file), (int)file.length());
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCUtil.release(conn, stmt, rs);
}
}
}