JDBC实现文件、图片的存储实例

来源:互联网 发布:网络答题系统 编辑:程序博客网 时间:2024/06/15 10:28
/*实现的功能:用数据库存储文本数据,并且读取出来放在当前项目里分析:难度不是很大,关键是掌握文件流,数据库的操作不是很多,但是文件流的读写比较多日期:20131003作者:烟大阳仔*/public class Ckb_test {public static void main(String[] args) throws SQLException, IOException {// TODO Auto-generated method stubread();}static void create() throws SQLException, IOException{Connection conn=null;PreparedStatement prest=null;ResultSet resultset=null;try {//2.建立连接conn=JdbcUtils.getConnection();//单例设计模式conn=JdbcUtilsSingle.getInstance().getConnection();//3.创建语句String sql="insert into ckb_test(text) values(?)";prest=conn.prepareStatement(sql);File file=new File("src/cn/com/JDBC/JdbcUtils.java");Reader reader=new BufferedReader(new FileReader(file));prest.setCharacterStream(1, reader, (int)file.length());//4.执行语句int i=prest.executeUpdate();reader.close();System.out.println("i="+i);} finally{JdbcUtils.free(resultset, prest, conn);}}static void read() throws SQLException, IOException{Connection conn=null;Statement st=null;ResultSet resultset=null;try {//2.建立连接conn=JdbcUtils.getConnection();//单例设计模式conn=JdbcUtilsSingle.getInstance().getConnection();//3.创建语句st=conn.createStatement();//4.执行语句resultset=st.executeQuery("select text from ckb_test");//5.处理结果while(resultset.next()){Clob clob=resultset.getClob(1);Reader reader=clob.getCharacterStream();//reader=resultset.getCharacterStream(1);File file=new File("JdbcUtils.java");Writer writer=new BufferedWriter(new FileWriter(file));char[] buff=new char[1024];for(int i=0;(i=reader.read(buff))>0;){writer.write(buff,0,i);}writer.close();reader.close();}} finally{JdbcUtils.free(resultset, st, conn);}}}----------------------------------------------------------------------------------------------------------/*实现的功能:用数据库存储图片数据,并且读取出来放在当前项目里分析:难度不是很大,关键是掌握字节流,数据库的操作不是很多,但是文件流的读写比较多,注意更改图片的目录日期:20131003作者:烟大阳仔*/public class PictureBlob {public static void main(String[] args) throws SQLException, IOException {read();}static void create() throws SQLException, IOException{Connection conn=null;PreparedStatement prest=null;ResultSet resultset=null;try {//2.建立连接conn=JdbcUtils.getConnection();//单例设计模式conn=JdbcUtilsSingle.getInstance().getConnection();//3.创建语句String sql="insert into blob_test(big_bit) values(?)";prest=conn.prepareStatement(sql);File file=new File("C:\\Documents and Settings\\Administrator\\My Documents\\My Pictures\\cxg.jpg");InputStream in=new BufferedInputStream(new FileInputStream(file));prest.setBinaryStream(1, in, (int)file.length());//4.执行语句int i=prest.executeUpdate();in.close();System.out.println("i="+i);} finally{JdbcUtils.free(resultset, prest, conn);}}static void read() throws SQLException, IOException{Connection conn=null;Statement st=null;ResultSet resultset=null;try {//2.建立连接conn=JdbcUtils.getConnection();//单例设计模式conn=JdbcUtilsSingle.getInstance().getConnection();//3.创建语句st=conn.createStatement();//4.执行语句resultset=st.executeQuery("select big_bit from blob_test");//5.处理结果while(resultset.next()){Blob blob=resultset.getBlob(1);InputStream in=blob.getBinaryStream();//reader=resultset.getCharacterStream(1);File file=new File("1.jpeg");OutputStream out=new BufferedOutputStream(new FileOutputStream(file));byte[] buff=new byte[1024];for(int i=0;(i=in.read(buff))>0;){out.write(buff,0,i);}out.close();in.close();}} finally{JdbcUtils.free(resultset, st, conn);}}}

原创粉丝点击