|
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) { } } }
|
