JDBC編程實現(xiàn)文件、圖片的存儲方法
更新時間:2015年10月19日 12:49:07 作者:煙大洋仔
這篇文章主要介紹了JDBC編程實現(xiàn)文件、圖片的存儲方法,以實例形式分析了Java基于JDBC操作數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了JDBC編程實現(xiàn)文件、圖片的存儲方法。分享給大家供大家參考,具體如下:
/* 實現(xiàn)的功能: 用數(shù)據(jù)庫存儲文本數(shù)據(jù),并且讀取出來放在當(dāng)前項目里 分析: 難度不是很大,關(guān)鍵是掌握文件流,數(shù)據(jù)庫的操作不是很多,但是文件流的讀寫比較多 日期:20131003 作者:煙大陽仔 */ public class Ckb_test { public static void main(String[] args) throws SQLException, IOException { // TODO Auto-generated method stub read(); } static void create() throws SQLException, IOException { Connection conn=null; PreparedStatement prest=null; ResultSet resultset=null; try { //2.建立連接 conn=JdbcUtils.getConnection(); //單例設(shè)計模式 conn=JdbcUtilsSingle.getInstance().getConnection(); //3.創(chuàng)建語句 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.執(zhí)行語句 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(); //單例設(shè)計模式 conn=JdbcUtilsSingle.getInstance().getConnection(); //3.創(chuàng)建語句 st=conn.createStatement(); //4.執(zhí)行語句 resultset=st.executeQuery("select text from ckb_test"); //5.處理結(jié)果 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); } } } /* 實現(xiàn)的功能: 用數(shù)據(jù)庫存儲圖片數(shù)據(jù),并且讀取出來放在當(dāng)前項目里 分析: 難度不是很大,關(guān)鍵是掌握字節(jié)流,數(shù)據(jù)庫的操作不是很多,但是文件流的讀寫比較多,注意更改圖片的目錄 日期: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(); //單例設(shè)計模式 conn=JdbcUtilsSingle.getInstance().getConnection(); //3.創(chuàng)建語句 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.執(zhí)行語句 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(); //單例設(shè)計模式 conn=JdbcUtilsSingle.getInstance().getConnection(); //3.創(chuàng)建語句 st=conn.createStatement(); //4.執(zhí)行語句 resultset=st.executeQuery("select big_bit from blob_test"); //5.處理結(jié)果 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); } } }
希望本文所述對大家Java程序設(shè)計有所幫助。
您可能感興趣的文章:
- Java編程中使用JDBC API連接數(shù)據(jù)庫和創(chuàng)建程序的方法
- JDBC 使用說明(流程、架構(gòu)、編程)
- Java Spring5學(xué)習(xí)之JdbcTemplate詳解
- Spring JDBC的使用詳解
- jdbc使用PreparedStatement批量插入數(shù)據(jù)的方法
- 將原生JDBC封裝實現(xiàn)CRUD的案例
- JavaWeb實戰(zhàn)之用Servlet+JDBC實現(xiàn)用戶登錄與注冊
- SpringBoot多數(shù)據(jù)源配置詳細教程(JdbcTemplate、mybatis)
- Java構(gòu)建JDBC應(yīng)用程序的實例操作
- JDBC編程的詳細步驟
相關(guān)文章
Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 代碼實踐
這篇文章主要介紹了Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析
這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價值,需要的朋友可以了解下。2017-11-11SpringCloud Alibaba Nacos 整合SpringBoot A
這篇文章主要介紹了SpringCloud Alibaba Nacos 整合SpringBoot Admin實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12springboot中請求地址轉(zhuǎn)發(fā)的兩種方案
在開發(fā)過程中,我們經(jīng)常需要將請求從一個服務(wù)轉(zhuǎn)發(fā)到另一個服務(wù),以實現(xiàn)不同服務(wù)之間的協(xié)作,本文主要介紹了springboot中請求地址轉(zhuǎn)發(fā)的兩種方案,感興趣的可以了解一下2023-11-11String實例化及static final修飾符實現(xiàn)方法解析
這篇文章主要介紹了String實例化及static final修飾符實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09