欢迎来到天天文库
浏览记录
ID:34707855
大小:53.26 KB
页数:3页
时间:2019-03-09
《java中sqllite数据库blob数据类型的存取》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JAVA中SQLlite数据库BLOB数据类型的存取找了好多资料,在sqllite在写入文件没什么难的,但是在取出blob的生成本地文件的时候存在问题,而且网上大部分都是针对手机开发的,很少有java对sqllite的介绍 /** *sqllite数据库文件的存储 * *@return */ privatestaticvoidtestSqlliteFile()throwsIOException{ Connectionconn=null; Statementsta=null; try{ Class.forName("org.sqlit
2、e.JDBC"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); //TochangebodyofcatchstatementuseFile
3、Settings
4、FileTemplates. } try{ conn=DriverManager.getConnection("jdbc:sqlite:"+SetCustomFinal.getInstance().getFileDiskStoreFolder()+SetCustomFinal.getInstance().getFileIte
5、mStoreFolder()+"\DBU1111111.DB","",""); }catch(SQLExceptione){ e.printStackTrace(); //TochangebodyofcatchstatementuseFile
6、Settings
7、FileTemplates. } try{ sta=conn.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); //TochangebodyofcatchstatementuseFile
8、Se
9、ttings
10、FileTemplates. } //上面没什么好废话的链接sqllite的jdbc // 读取数据 FileInsertefile=newFile("D:\进程.chm");//读取本地文件 FileInputStreamfis=newFileInputStream(Insertefile);//将本地文件转为文件流 byte[]bs=newbyte[Integer.parseInt(""+Insertefile.length())];//sqllite不能直接存如文件流,直接存byte【】数组。数组大小int可能会超限所以用
11、Integer fis.read(bs,0,bs.length);//将文件流写入byte【】数组 fis.close();//关闭文件流 //下面是将byte【】数组插入 Stringsb=("insertintofilelist (file_uid,folder_uid,file)values('U14012102074641','U14012102074688',?) "); PreparedStatementprep=null; try{ prep=conn.prepareStatement(sb); prep.se
12、tBytes(1,bs);//传入整理好的byte【】数组 prep.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); } //下面是将写入的文件从sqllite数据库读取出来,和写入类似 try{ PreparedStatementpstmt=conn.prepareStatement("SELECTFILEFROMfilelistWHEREFILE_UID=?"); pstmt.setString(1,"U14012102074641");/
13、/传入要取的图片的ID FileOutputStreamfos=null; Strings="SELECTFILE_UID,FILEFROMfilelistWHEREFILE_UID=?"; PreparedStatementpstmts=conn.prepareStatement(s); pstmts.setString(1,"U14012102074641");//传入要读取的FILE_UID ResultSetrs=pstm
此文档下载收益归作者所有