Class.forName("com.mysql.jdbc.Driver");
//System.out.print("加载驱动完毕");
String url="jdbc:mysql://localhost:3306/studentmanager";
String username="root";
String password="root";
String sql1="select * from images";
Connection conn=DriverManager.getConnection(url,username,password);
//创建一个 Statement 对象来将 SQL 语句发送到数据库。
PreparedStatement pst=conn.prepareStatement(sql1);
ResultSet rs=pst.executeQuery();
rs.next();
//从ResultSet中得到Blob的对象
Blob b=rs.getBlob("img");
//通过Blob对象的getBinaryStream得到字节流
InputStream fis= b.getBinaryStream();
//构建字节流的缓存BufferedInputStream的对象
BufferedInputStream bis=new BufferedInputStream(fis);
//准备一个FileOutputStream输出流对象
FileOutputStream fos =new FileOutputStream("d://2.jpg");
//准备一个字节数组,以备缓存读对象BufferedInputStream,每次读这些字节长度
byte[] be=new byte[1024];
//每读1024个字节就向FileOutputStream写1024个字节,直到写完。
while((bis.read(be))!=-1){
fos.write(be);
}
fos.flush();
fos.close();
fis.close();
bis.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void write(){
try {
Class.forName("com.mysql.jdbc.Driver");
//System.out.print("加载驱动完毕");
String url="jdbc:mysql://localhost:3306/studentmanager";
String username="root";
String password="root";
String sql1="insert into images values (?)";
Connection conn=DriverManager.getConnection(url,username,password);
//创建一个 Statement 对象来将 SQL 语句发送到数据库。
PreparedStatement pst=conn.prepareStatement(sql1);
File file=new File("e://1.jpg");
int len=(int)file.length();
FileInputStream fis=new FileInputStream(file);
pst.setBinaryStream(1,fis,len);
int count=pst.executeUpdate();
if(count>0){
System.out.println("执行成功");
}else{
System.out.println("执行未返回任何影响行数");
}
} catch (Exception ex) {
ex.printStackTrace();
}