Advertisement
Guest User

Untitled

a guest
Aug 12th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.74 KB | None | 0 0
  1. package com.conexao;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.InputStream;
  6. import java.sql.Blob;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import java.util.UUID;
  14.  
  15. public class MigracaoDados {
  16.  
  17.     public static void main(String[] args) throws Exception {
  18.  
  19.         ResultSet rs = null;
  20.  
  21.         try {
  22.             Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
  23.             Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.102:1521:xe","teste","123456");
  24.             System.out.println("Conectado!");
  25.             Statement statement = connection.createStatement();
  26.  
  27.             String sql = "SELECT id, dthinclusao, path, documentoarquivo FROM processodocumento";
  28.             rs = statement.executeQuery(sql);
  29.  
  30.             while (rs.next()) {
  31.  
  32.                 //obtendo o arquivo no banco
  33.                 int id = rs.getInt("id");
  34.                 Blob blob = rs.getBlob("documentoarquivo");
  35.                
  36.                 //stream para leitura
  37.                 InputStream is = blob.getBinaryStream();
  38.                
  39.                 String data = rs.getString("dthinclusao");         
  40.                 String s_ano = data.substring(0,4);
  41.                 String s_mes = data.substring(5,7);
  42.                 String s_dia = data.substring(8,10);
  43.                 System.out.println(s_dia + "/" + s_mes + "/" + s_ano);
  44.                 System.out.println("---------------");
  45.                        
  46.                 //criacao do diretorio
  47.                 File novoDiretorio = new File("/home/phoenix/Documentos/workspace/files/" + "/"
  48.                         + s_ano + "/"
  49.                         + s_mes + "/"
  50.                         + s_dia + "/");
  51.                 novoDiretorio.mkdirs();
  52.                
  53.                 //geracao aleatoria dos nomes dos arquivos
  54.                 String descricaoArquivo = UUID.randomUUID().toString();
  55.  
  56.                 //criacao do arquivo
  57.                 File file = new File(novoDiretorio, descricaoArquivo + ".pdf");
  58.                 System.out.println("Caminho do arquivo: " + file);
  59.                
  60.                 String path = file.toString();
  61.                 System.out.println("Path: " + path);
  62.                
  63.                 //atualizar campo path de acordo o nome do arquivo gerado
  64.                 String sqlAtualiza = "UPDATE processodocumento SET path=? WHERE id = ?";           
  65.                 PreparedStatement stmt = connection.prepareStatement(sqlAtualiza);
  66.                
  67.                 stmt.setString(1, path);
  68.                 stmt.setInt(2, id);
  69.                 stmt.executeUpdate();
  70.                
  71.                 //stream para escrita
  72.                 FileOutputStream fos = new FileOutputStream(file); 
  73.  
  74.                 int b = 0;
  75.                 while ((b = is.read()) != -1)
  76.                 {
  77.                     //efetuar a escrita no sistema de arquivos
  78.                     fos.write(b);
  79.                 }
  80.                 fos.close();
  81.                 stmt.close();
  82.             }
  83.             statement.close();
  84.             System.out.println("Todos os arquivos foram gravados no sistema de arquivos!");
  85.             System.out.println("Desconectado!");
  86.  
  87.            
  88.         } catch (SQLException e)
  89.         {
  90.             e.getMessage (); e.printStackTrace();
  91.             System.out.println(e);
  92.         }
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement