Advertisement
Guest User

Untitled

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