Olá pessoal do GUJ…estou enfrentando um pequeno problema (creio eu). Estou tentando inserir um registro no BD (Postgresql) e, aparentemente, não há nada de errado com o meu código, pelo menos eu não estou detectando isso via eclipse. Criei uma rotina de login e funcionou perfeitamente. Esse módulo não me traz nenhuma mensagem de erro, porém, quando eu mando executar não acontece a inserção e no console do eclipse surge a seguinte mensagem:
org.postgresql.util.PSQLException: ERRO: character with byte sequence 0xc2 0x93 in encoding “UTF8” has no equivalent in encoding “WIN1252”
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:379)
at br.com.DAO.JDBCResenhaDAO.inserir(JDBCResenhaDAO.java:41)
at br.com.control.ActionCadResenha.doPost(ActionCadResenha.java:66)
Eis as minhas classes:
package br.com.control;
import br.com.model.Resenha;
import br.com.DAO.*;
import java.io.IOException;
import java.sql.Connection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ActionCadResenha
*/
public class ActionCadResenha extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String autor = request.getParameter("autor");
String titulo = request.getParameter("titulo");
String materia = request.getParameter("materia");
String fonte = request.getParameter("fonte");
String publicacao = request.getParameter("publicacao");
String lancamento = request.getParameter("lancamento");
Date dateP=null;
Date dateL=null;
try {
dateP = new SimpleDateFormat("dd/MM/yyyy").parse(publicacao);
} catch (ParseException ex) {
ex.printStackTrace();
}
try {
dateL = new SimpleDateFormat("dd/MM/yyyy").parse(lancamento);
} catch (Exception e) {
System.out.println("Atenção, ocorreu um erro; " + e.getMessage());
}
Resenha cadResenha = new Resenha();
cadResenha.setAutor(autor);
cadResenha.setTitulo(titulo);
cadResenha.setMateria(materia);
cadResenha.setFonte(fonte);
cadResenha.setData_publicacao(dateP);
cadResenha.setData_lancamento(dateL);
FabricaConexao fabrica = new FabricaConexao();
Connection conexao = fabrica.fazConexao();
JDBCResenhaDAO dao = new JDBCResenhaDAO(conexao);
dao.inserir(cadResenha);
if(cadResenha!=null){
//System.out.println("<a href='home.jsp'>Retornar</a>");
System.out.println("Registro inserido com sucesso!!!");
}
fabrica.fecharConexao();
}
}
/*****************/
package br.com.DAO;
import br.com.model.Resenha;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class JDBCResenhaDAO implements ResenhaDAO {
Connection conexao;
public JDBCResenhaDAO(Connection conexao){
this.conexao = conexao;
}
public void inserir(Resenha resenha) {
String comando = "INSERT INTO tb_resenha(autor, titulo, materia, fonte, data_publicacao, data_lancamento) VALUES (?,?,?,?,?,?)";
PreparedStatement p;
try {
p = this.conexao.prepareStatement(comando);
p.setString(1, resenha.getAutor());
p.setString(2, resenha.getTitulo());
p.setString(3, resenha.getMateria());
p.setString(4, resenha.getFonte());
p.setDate(5, new java.sql.Date(resenha.getData_publicacao().getTime()));
p.setDate(6, new java.sql.Date(resenha.getData_lancamento().getTime()));
p.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Resenha> listarTodos() {
List<Resenha> resenhas = new ArrayList<Resenha>();
String comando = "SELECT * FROM tb_resenha ORDER BY id_resenha desc LIMIT 2;";
try {
java.sql.Statement stmt = conexao.createStatement();
ResultSet rs = stmt.executeQuery(comando);
while(rs.next()){
Resenha resenha = new Resenha();
String autor = rs.getString("autor");
String titulo = rs.getString("titulo");
String materia = rs.getString("materia");
String fonte = rs.getString("fonte");
Date data_publicacao = rs.getDate("data_publicacao");
Date data_lancamento = rs.getDate("data_lancamento");
resenha.setAutor(autor);
resenha.setTitulo(titulo);
resenha.setMateria(materia);
resenha.setFonte(fonte);
resenha.setData_publicacao(data_publicacao);
resenha.setData_lancamento(data_lancamento);
resenhas.add(resenha);
}
} catch (Exception e) {
e.printStackTrace();
}
return resenhas;
}
}
/**********************************/
package br.com.model;
import java.util.Date;
public class Resenha {
private String autor;
private String titulo;
private String materia;
private String fonte;
private Date data_publicacao;
private Date data_lancamento;
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getMateria() {
return materia;
}
public void setMateria(String materia) {
this.materia = materia;
}
public String getFonte() {
return fonte;
}
public void setFonte(String fonte) {
this.fonte = fonte;
}
public Date getData_publicacao() {
return data_publicacao;
}
public void setData_publicacao(Date data_publicacao) {
this.data_publicacao = data_publicacao;
}
public Date getData_lancamento() {
return data_lancamento;
}
public void setData_lancamento(Date data_lancamento) {
this.data_lancamento = data_lancamento;
}
}
/*************************************************/
package br.com.DAO;
import java.sql.Connection;
public class FabricaConexao {
private java.sql.Connection conexao;
public Connection fazConexao(){
try {
Class.forName("org.postgresql.Driver");
conexao = java.sql.DriverManager.getConnection("jdbc:postgresql://localhost:5432/sisaut","postgres","dba1965test");
} catch (Exception e) {
e.printStackTrace();
}
return conexao;
}
public void fecharConexao(){
try {
conexao.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}