Olá pessoal,
Me considero bem novato em Java mas gostaria bastante da orientação e dicas de Vocês sobre um pequeno programa que desenvolvi.
Trata-se de um programa que se conecta ao um banco de dados (Oracle no caso) e gera arquivos de acordo com a quebra retornada na consulta.
Na verdade gostaria de ouvir Vocês sobre a arquitetura do código, a passagem de parametros / objetos e tudo mais. As questões conceituais tem a maior importância nesta minha fase de aprendizado.
Sei que existem diversas maneiras de se fazer a mesma coisa mas em Java isto parece se multiplicar ainda mais. Toda e qualquer consideração será muito bem aceita.
Desde já agradeço a todos, em especial pela paciência ok?. Segue o código
/***
* File : geraTexto.java
* Author : Oswaldo Castro (Obrigado Mayank Bawa!!!)
* Written : 2007-02-25
* Description : Geração de arquivos texto de acordo com a quebra do código da escola
*
*/
import java.sql.* ;
import java.io.*;
public class geraTexto {
public static void main(String[] args) throws SQLException {
Connection c = null;
int codigoEscola = 0;
PrintWriter arquivoAtual = null;
String registro = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:setrerj","setrerj", "setrerj");
Statement s = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY) ;
c.setAutoCommit(false) ;
ResultSet rs = s.executeQuery(
/* ---- user file ------*/
"select " +
" mnit.prv_id cod_escola " +
", lpad(to_char(mnit.cd_cliente)||to_char(mnit.dg_cliente), 10, '0') id_cliente " +
", rpad(mnit.nome_aluno, 100, ' ') nome_aluno " +
" from municipais_niteroi mnit " +
" where mnit.foto = 'S' " +
" and mnit.serie_aluno between 1 and 8 " +
" and mnit.prv_id < 502 " +
" order by mnit.prv_id, mnit.nome_aluno");
while( rs.next() ) {
if ( codigoEscola == rs.getInt("cod_escola") ) {
registro = montaRegistro( rs );
gravaRegistro(arquivoAtual, registro);
} else {
if (codigoEscola != 0) {
fechaArquivo(arquivoAtual);
}
codigoEscola = rs.getInt("cod_escola");
arquivoAtual = abreNovoArquivo(codigoEscola);
registro = montaRegistro( rs );
gravaRegistro(arquivoAtual, registro);
}
}
} catch (ClassNotFoundException ex){
System.out.println(ex);
} finally {
try {
c.close();
} catch (Exception e) {}
}
}
public static PrintWriter abreNovoArquivo(int codigoEscola) {
int numeroRegistros = 1;
System.out.println("vou gravar novo arquivo: "+codigoEscola);
PrintWriter saidaU = null;
String fileNameU = "e:\Niteroi_Operacao\Cadastros\Estudantes\Niteroi\Municipais\Arquivos_texto\"+codigoEscola+"_est_munic_Nit_22022007.users" ;
try {
File arquivoU = new File(fileNameU);
if (arquivoU.exists()) {
arquivoU.delete();
}
saidaU = new PrintWriter(new FileWriter( fileNameU, true ));
} catch ( IOException iox ) {
System.out.println("erro io saidaU");
}
return saidaU;
}
public static String montaRegistro(ResultSet rs) {
String registroM = null;
try {
registroM = rs.getInt("cod_escola")+"-"+rs.getString("id_cliente")+"-"+rs.getString("nome_aluno");
System.out.println("Registro : "+registroM);
} catch (SQLException ex){
System.out.println("SQLException caught");
System.out.println("---");
while ( ex != null ){
System.out.println("Message : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("ErrorCode : " + ex.getErrorCode());
System.out.println("---");
ex = ex.getNextException();
}
}
return registroM;
}
public static void gravaRegistro(PrintWriter arquivo, String registro) {
System.out.println("Registro : "+registro);
arquivo.println(registro);
}
public static void fechaArquivo(PrintWriter arquivo) {
System.out.println("vou fechar o arquivo :");
arquivo.close();
}
}
Abraços a todos