Este artigo descreve o método de programação JDBC para armazenar arquivos e imagens por meio de exemplos. Compartilhe com todos para sua referência, os detalhes são os seguintes:
/*Função implementada: Use o banco de dados para armazenar dados de texto, leia-os e coloque-os no projeto atual para análise: A chave é dominar o fluxo do arquivo. , mas há mais leitura e gravação do fluxo de arquivo Data: 20131003 Autor: Yan Dayangzi*/public class Ckb_test { public static void main(String[] args) throws SQLException, IOException { // TODO Método gerado automaticamente stub read. (); } vazio estático create() lança SQLException, IOException { Connection conn=null; //Modo de design de caso único conn=JdbcUtilsSingle. getInstance ().getConnection(); //3. Criar instrução String sql="inserir em valores ckb_test (texto) (?)"; prest = conn.prepareStatement (sql); Arquivo arquivo = novo arquivo ("src/cn/com/JDBC/JdbcUtils.java"); Leitor leitor = novo BufferedReader (novo FileReader (arquivo )); prest.setCharacterStream(1, leitor, (int)file.length()); i=prest.executeUpdate(); leitor.close(); System.out.println("i="+i); finalmente { JdbcUtils.free(resultset, prest, conn); SQLException, IOException { Conexão conn=null; Instrução st=null; //2. Estabelecer uma conexão conn=JdbcUtils.getConnection(); //Modo de design de caso único conn=JdbcUtilsSingle.getInstance().getConnection(); 4. Execute a instrução resultset=st.executeQuery("selecione o texto de ckb_test"); //5. Processe os resultados while(resultset.next()) { Clob clob=resultset.getClob(1); Arquivo ("JdbcUtils.java"); Escritor escritor = novo BufferedWriter (novo FileWriter (arquivo)); char[1024]; for(int i=0;(i=reader.read(buff))>0;) { escritor.write(buff,0,i } escritor.close() leitor.close(); ; } } finalmente { JdbcUtils.free(resultset, st, conn); } }}/*Função implementada: Use o banco de dados para armazenar dados de imagem, leia-os e coloque-os no projeto atual para análise: Não é muito difícil. A chave é dominar o fluxo de bytes. Não há muitas operações no banco de dados, mas há muitas leituras e gravações de fluxos de arquivos. Preste atenção à alteração da data do diretório da imagem: 20131003 Autor: Yan. Dayangzi*/classe pública PictureBlob { public static void main(String[] args) lança SQLException, IOException { read(); static void create() lança SQLException, IOException { Connection conn=null; ResultSet resultset=null; try { //2. Estabelecer uma conexão conn=JdbcUtils.getConnection(); // Modo de design Singleton conn=JdbcUtilsSingle.getInstance().getConnection(); inserir em blob_test(big_bit) valores(?)"; prest=conn.prepareStatement(sql); Arquivo arquivo=novo File("C://Documentos e Configurações//Administrador//Meus Documentos//Minhas Imagens//cxg.jpg"); InputStream in=new BufferedInputStream(new FileInputStream(file)); (int)file.length()); //4. Executar instrução int i=prest.executeUpdate(); System.out.println("i="+i } finalmente { JdbcUtils.free(resultset, prest, conn } } static void read() lança SQLException, IOException { Connection conn=null; ResultSet resultset=null; try { //2. Estabelecer uma conexão conn=JdbcUtils.getConnection(); //Modo de design de caso único conn=JdbcUtilsSingle.getInstance().getConnection(); //3. Criar instrução st=conn.createStatement(); ); //5. Processar os resultados while(resultset.next()) { Blob blob=resultset.getBlob(1); InputStream in=blob.getBinaryStream(); //reader=resultset.getCharacterStream(1); Arquivo file=new File("1.jpeg"); =novo byte[1024]; for(int i=0;(i=in.read(buff))>0;) { out.write(buff,0,i } out.close(); in.close(); finalmente { JdbcUtils.free(resultset, st, conn);
Espero que este artigo seja útil para todos na programação Java.