jdbc 使用PreparedStatement来存储和读取大数据(Blob或Clob)详解编程语言

//假设这里建立的数据库位use,而建立的表位luser 
 
import  java.io.*; 
 
import java.sql.*; 
 
public class DBB{ 
 
private  static  String driver ="com.mysql.jdbc.driver"; 
 
private  static  String url ="jdbc:mysql://localhost:3306/use"; 
private static  String user="root"; 
 
private static String pass="admin"; 
 
public static  void main(String[]args){ 
 
Connection con= null; 
 
PreparedStatement sta= null; 
 
ResultSet res= null; 
 
try{ 
 
//获取数据源 
 
//假设就是从d盘中读取的一张照片; 
 
File file= new File("d:" + File.separator + "photo.jpg"); 
 
int length= (int)file.length(); 
 
InputStream input = new FileInputStream(file); 
 
//加载mysql驱动 
 
Class.forName(driver); 
 
//取得链接对象 
 
con= DriverManager.getConnection(url,user,pass); 
 
//取得操作对象 
 
sta= con.prepareStatement("insert into luser values(?,?,?);"); 
 
//加载数据 
 
sta.setInt(1,110); 
 
sta.setString(2,"namefile"); 
 
sta.setBinaryStream(3,input ,length); 
 
sta.executeUpdate(); 
 
sta.clearParameters(); 
 
input.close();//释放资源; 
 
}catch(SQLException e){ 
 
e.printStackTrace(); 
 
}catch(IOException e){ 
 
e.printStackTrace(); 
 
}catch(ClassNotFoundException e){ 
e.printStackTrace(); 
} 
 
finally{ 
 
if(con!=null){ 
 
try{ 
 
con.close(); 
 
}catch(SQLException e){   //(_)%^&**(_)(&*)(*#%$%^&*(()__)((( 
 
e.printStackTrace(); 
 
} 
 
} 
 
} 
 
Statement stat= null; 
 
try{ 
 
//数据的取得 
 
stat= con.createStatement(); 
 
stat.executeQuery("select* from luser;"); 
 
res.next(); 
 
String filename= res.getString(2); 
 
Blob blob= res.getBlob(3); 
 
//把获得的数据写到指定的文件中 
 
FileOutputStream out= new FileOutputStream("d:" + File.separator+ "dong" +".bak"); 
 
out.write(blob.getBytes(1,(int)blob.length())); 
 
out.flush();//把内存中的东西刷出来 
 
out.close();//释放资源 
 
}catch(SQLException e){ 
 
e.printStackTrace(); 
 
} 
 
catch(IOException e){ 
 
e.printStackTrace(); 
 
} 
 
finally{ 
 
if(stat!= null){ 
 
try{ 
 
stat.close(); 
 
}catch(SQLException e){ 
 
e.printStackTrace(); 
 
} 
 
 
 
} 
if(con!=null){ 
 
try{ 
 
con.close(); 
 
}catch(SQLException e){ 
 
e.printStackTrace(); 
 
} 
 
} 
 
} 
 
} 
 
} 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10668.html

(0)
上一篇 2021年7月19日 10:22
下一篇 2021年7月19日 10:22

相关推荐

发表回复

登录后才能评论