欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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è)計有所幫助。

相關(guān)文章

  • Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 代碼實踐

    Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 代碼實踐

    這篇文章主要介紹了Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析

    TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析

    這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中\(zhòng)n和\r區(qū)別

    Java中\(zhòng)n和\r區(qū)別

    本文主要介紹了Java中\(zhòng)n和\r區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java動態(tài)調(diào)用類中方法代碼

    Java動態(tài)調(diào)用類中方法代碼

    這篇文章主要介紹了Java動態(tài)調(diào)用類中方法代碼,需要的朋友可以參考下
    2014-02-02
  • MyBatis無縫對接Spring的方法

    MyBatis無縫對接Spring的方法

    Spring框架與MyBatis框架是Java互聯(lián)網(wǎng)技術(shù)的主流框架。那么mybatis如何無縫對接spring呢?下面通過本文給大家介紹,需要的的朋友參考下吧
    2017-09-09
  • SpringCloud Alibaba Nacos 整合SpringBoot Admin實戰(zhàn)

    SpringCloud Alibaba Nacos 整合SpringBoot A

    這篇文章主要介紹了SpringCloud Alibaba Nacos 整合SpringBoot Admin實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java?NIO?Buffer實現(xiàn)原理詳解

    Java?NIO?Buffer實現(xiàn)原理詳解

    本篇文章主要對NIO核心三件套:緩沖區(qū)(Buffer)、選擇器?(Selector)和通道(Channel),其中之一的緩沖區(qū)Buffer實現(xiàn)原理的學(xué)習(xí)總結(jié)。感興趣的小伙伴可以了解一下
    2021-11-11
  • springboot中請求地址轉(zhuǎn)發(fā)的兩種方案

    springboot中請求地址轉(zhuǎn)發(fā)的兩種方案

    在開發(fā)過程中,我們經(jīng)常需要將請求從一個服務(wù)轉(zhuǎn)發(fā)到另一個服務(wù),以實現(xiàn)不同服務(wù)之間的協(xié)作,本文主要介紹了springboot中請求地址轉(zhuǎn)發(fā)的兩種方案,感興趣的可以了解一下
    2023-11-11
  • String實例化及static final修飾符實現(xiàn)方法解析

    String實例化及static final修飾符實現(xiàn)方法解析

    這篇文章主要介紹了String實例化及static final修飾符實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 利用Spring框架為自己的校園卡充值(推薦)

    利用Spring框架為自己的校園卡充值(推薦)

    這篇文章主要介紹了利用Spring框架為自己的校園卡充值,本次實驗主要運用了Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)等知識,通過利用Spring框架編寫Java程序,實現(xiàn)學(xué)生卡的單次充值,如需對學(xué)生卡進行多次充值,可將部分代碼修改即可實現(xiàn),需要的朋友可以參考下
    2022-10-10

最新評論