Ol� colegas Javaneses,
 
Estou fazendo uma aplica��o (somente para aprendizado) utilizando JSP com Servlets acesando um banco de dados MDB. Nessa aplica��o necessito utilizar campos do tipo data formatados para a nossa lingua: dd/MM/yyyy. N�o obstante as tentativas que fiz para tentar gravar os valores de datas no banco de dados, n�o obtive resultado.
 
Algu�m poderia me dar uma dica sobre como proceder. A �ltima tentativa foi utilizando o c�digo abaixo.
 
(S�o tr�s classes:
- A primeira ComandoAdicAnotacao deve receber os par�metros data no formato dd/MM/yyyy da p�gina JSP e convert�-los para yyyy-MM-dd que credito seja  o formato que deve ser gravado no MDB)
- A segunda executa o m�todo incluir() e chama a classe AcessaBD para inserir os dados no banco de dados MDB.
- E a �ltima (AcessaBD) � para fazer o acesso ao banco de dados)
 
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.text.*;
import java.util.*;
 
public class ComandoAdicAnotacao implements Comando {
   private String proxima;
   private String cgcCpfDevedor;
   private String tipoDeAnotacao;
 
   public ComandoAdicAnotacao(String proxima) {
     this.proxima = proxima;
   }
 
   public String execute(HttpServletRequest req)
     throws ExcecaoComando {
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  ParsePosition pos = new ParsePosition(0);            
     try {
        if (ComandoToken.eValido(req)) {
         Anotacao anotacao;
        Date dataDoDocumento = df.parse(req.getParameter("DataDoDocumento"), pos);
        anotacao.setDataDoDocumento((java.sql.Date)dataDoDocumento);
        double valorDaDivida = Double.parseDouble((String)req.getParameter("ValorDaDivida"));
        anotacao.setValorDaDivida(valorDaDivida);
        GregorianCalendar gc = new GregorianCalendar();
        Date dataDoRegistro = gc.getTime();    
        anotacao.setDataDoRegistro((java.sql.Date)dataDoRegistro);
        anotacao.setComentarioAnotacao(req.getParameter("ComentarioAnotacao"));
        anotacao.setStatusAnotacao("P");
 
        anotacao.incluir();     
    
        }
        else {
            req.setAttribute("serasa.msg", "Sua sess�o expirou");
            proxima = "home.jsp";
        }
      return proxima;                    
     }
     catch (ExcecaoAcessaBD eabd) {
      System.out.println("ComandoAdicAnotacao: " + eabd.getMessage());
        throw new ExcecaoComando("ComandoAdicAnotacao: " + eabd.getMessage());
     }   
     catch (ExcecaoComando ec) {
      System.out.println("ComandoAdicAnotacao: " + ec.getMessage());
        throw new ExcecaoComando("ComandoAdicAnotacao: " + ec.getMessage());
     }      
     catch (Exception e) {
   proxima = "cadastroAnotacoes.jsp";      
   System.out.println("ComandoAdicAnotacao: " + e.getMessage());
        throw new ExcecaoComando("ComandoAdicAnotacao: " + e.getMessage());
     }   
   }
}
 
import java.sql.*;
import java.util.*;
 
public abstract class Anotacao {
    protected java.sql.Date dataDoDocumento;
    protected java.sql.Date dataDoRegistro;
    protected java.sql.Date dataDaBaixa;
    
    public Anotacao() {
     comentarioAnotacao = "";
     statusAnotacao = "";
    }
    public Anotacao(String numCgcCpfDevedor, int seqAnotacao) {
     this.numCgcCpfDevedor = numCgcCpfDevedor;
     this.seqAnotacao = seqAnotacao;    
    }
    public java.util.Date getDataDoDocumento() { 
     return dataDoDocumento;
    }  
    public java.util.Date getDataDoRegistro() {
      return dataDoRegistro;
    }
    public java.util.Date getDataDaBaixa() {
      return dataDaBaixa;
    }
    public void setDataDoDocumento( java.sql.Date dataDoDocumento ) { 
     this.dataDoDocumento = dataDoDocumento;
    }  
    public void setDataDoRegistro( java.sql.Date dataDoRegistro ) {
      this.dataDoRegistro = dataDoRegistro;
    }
    public void setDataDaBaixa( java.sql.Date dataDaBaixa ) {
      this.dataDaBaixa = dataDaBaixa;
    }  
    public void incluir()
     throws ExcecaoAcessaBD, ExcecaoComando {
    String sql = "Insert into anotacao (numCgcCpfDevedor, seqAnotacao, numCgcCpfCredor, " +
    "tipoDeAnotacao, numDocumento, dataDoDocumento, valorDaDivida, comentarioAnotacao, " +
    "statusAnotacao, dataDaBaixa) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
    System.out.println("Criou string SQL em anotacao");    
    PreparedStatement prepStmt = null;        
    try {
   AcessaBD acessaBD = AcessaBD.getInstancia();     
   prepStmt = acessaBD.getPrepStmt(sql); 
   synchronized(prepStmt) {
    prepStmt.clearParameters();
    prepStmt.setString(1, numCgcCpfDevedor);
    prepStmt.setInt(2, seqAnotacao);
    prepStmt.setString(3, numCgcCpfCredor);
    prepStmt.setString(4, tipoDeAnotacao);
    prepStmt.setString(5, numDocumento);
    prepStmt.setDate(6, dataDoDocumento);
    prepStmt.setDouble(7, valorDaDivida);
    prepStmt.setDate(8, dataDoRegistro);
    prepStmt.setString(8, comentarioAnotacao);
    prepStmt.setString(9, statusAnotacao);
    prepStmt.setDate(10, dataDaBaixa);
    acessaBD.executeInsertStmt(prepStmt);
    acessaBD.commit();
    System.out.println("Executou insert em anotacao");            
    acessaBD.closeStmt(prepStmt);    
     }
  }
     catch (ExcecaoAcessaBD eabd) {
   System.out.println("InclusaoAnotacao: ExcecaoAcessaBD " + eabd.getMessage());              
        throw new ExcecaoComando("InclusaoAnotacao: " + eabd.getMessage());
     }      
  catch (SQLException sqleOpen) {
  System.out.println("InclusaoAnotacao:SQLException "+ sqleOpen.getMessage());    
       throw new ExcecaoAcessaBD ("InclusaoAnotacao: " + sqleOpen.getMessage());
  }     
    }    
}
 
 
import java.sql.*;
 
public class AcessaBD {
 private static AcessaBD instancia;
 
 // Parametrizacao
 private static final String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
                         // "sun.jdbc.odbc.JdbcOdbcDriver" - JDBC ODBC
                         // "org.postgresql.Driver"        - JDBC PostgreSql
                         // "org.gjt.mm.mysql.Driver"      - JDBC MySql
  private static final String dbUrl = "jdbc:odbc:decisaocredito";
                        //  "jdbc:odbc:decisaocredito"         - JDBC ODBC
                        //  "jdbc:postgresql:decisaocredito"   - JDBC PostgreSql
                        //  "jdbc:mysql://hm43/decisaocredito" - JDBC MySql
  private static final String dbUserName = "";
  private static final String dbPassword = "";
  
  static Connection conexao;
    
 /** Retorna uma inst�ncia da conexao BD v�lida para esta aplica��o */
   public static AcessaBD getInstancia()
     throws ExcecaoAcessaBD {
     if (instancia == null)
        instancia = new AcessaBD();
     return instancia;
   }  
     
 /** Construtor da Classe de Acesso a BD */
 private AcessaBD() throws ExcecaoAcessaBD {
      try {
          Class.forName(dbDriver);
          conexao = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
          conexao.setAutoCommit(false);
          
        }
     catch (ClassNotFoundException CNFEex) {
        throw new ExcecaoAcessaBD("(Conexoes): Driver " +
                   dbDriver + " n�o dispon�vel.\nMensagem: " + CNFEex.getMessage());
 
        }
     catch (SQLException SQLEex) {
           throw new ExcecaoAcessaBD("(Conexoes): Driver " +
                    dbDriver + " n�o carregado.\nMensagem: " + SQLEex.getMessage());
           
       }
    }
 
 /**  Pega um PreparedStatement do BD */
 public PreparedStatement getPrepStmt (String sql)
   throws ExcecaoAcessaBD {
  try{
   PreparedStatement prepStmt = conexao.prepareStatement(sql);
   return prepStmt;
  }
  catch (SQLException gPSex){
   throw new ExcecaoAcessaBD ("Erro na Prepara��o do Stmtement: " + gPSex.getMessage()); 
  }
 }
 
 /**  executeInsertStmt: Executar inser��o no BD */
    public static void executeInsertStmt (PreparedStatement prepStmt)
      throws ExcecaoAcessaBD {
      try {
         prepStmt.executeUpdate();
       }
     catch (SQLException PSex) {
   throw new ExcecaoAcessaBD ("Erro na Execu��o de Insert: " + PSex.getMessage());      
     }
   }
 
 /**  executeUpdateStmt: Executar atualizacao no BD */
    public static int executeUpdateStmt (PreparedStatement prepStmt)
      throws ExcecaoAcessaBD {
      try {
         int mudouReg = prepStmt.executeUpdate();
         return mudouReg;
       }
     catch (SQLException PSex) {
   throw new ExcecaoAcessaBD ("Erro na Execu��o de Update: " + PSex.getMessage());      
     }
   }
   
 /**  GetRecordSet para a connexao BD */
    public static ResultSet getResultSet (PreparedStatement prepStmt)
     throws ExcecaoAcessaBD {
    ResultSet rs = null;
      try {
         rs = prepStmt.executeQuery();
        }
      catch (SQLException ex) {
       throw new ExcecaoAcessaBD ("Erro na Execu��o do ResultSet: " + ex.getMessage()); 
      }
      return rs;
   }
 
 /**  Commit para a connexao BD */
   public static void commit()
    throws ExcecaoAcessaBD {
      try {
         if (conexao!=null)
             conexao.commit();
      }
      catch (SQLException ex) {
       throw new ExcecaoAcessaBD ("Erro no Commit: " + ex.getMessage()); 
      }
   }
 
 /**  Executa ROLLBACK do BD */
   public static void rollBack ()
    throws ExcecaoAcessaBD {
      try {
         if (conexao!=null)
            conexao.rollback();
      }
      catch (SQLException ex) {
       throw new ExcecaoAcessaBD ("Erro no Rollback: " + ex.getMessage()); 
      }
   }
 
 /**  Fechar ResultSet */
   public static void closeRS(ResultSet rs)
    throws ExcecaoAcessaBD {
      try {
        rs.close();
      }
      catch (SQLException ex) {
       throw new ExcecaoAcessaBD ("Erro no Fechamento do ResultSet: " + ex.getMessage()); 
      }
   }
 
 /**  Fechar statement st */
   public static void closeStmt(Statement prepStmt)
    throws ExcecaoAcessaBD {
     try {
         prepStmt.close();
      }
      catch (SQLException ex) {
       throw new ExcecaoAcessaBD ("Erro no Fechamento do PrepStmt: " + ex.getMessage()); 
      }
   }
   
 /**  Fechar conexao BD */
   public static void closeConnection(Connection conexao) {
      try {
         if (conexao!=null)
            if (!conexao.isClosed())
                 conexao.close();
      }
      catch (SQLException ex) { }
   }   
 
}

Responder a