Olá, sou novo em forum, estou estudando java utilizando o Eclipse a uns 5 dias, e começei a programar uns exemplos da apostila que utilizo na faculdade, mas está dando um erro, e não sei como resolvê-lo. Não sei o local exato de colocar minhas dúvidas, peço desculpa por algum erro ok?
No meu exercício, tem uma classe criada para conexao que se chama ConexaoBd, e um jsp que faz o teste, que da ok na conexao, ai fiz uma classe pra colocar o incluir, excluir…, e um jsp que faz a inserção com form, mas está sempre dando o erro de resposta que está na apostila, como Erro ao cadastrar contato.
Meus códigos seguem abaixo:
[code]package database;
import java.sql.*;
public class ConexaoBd {
Connection con;
public boolean conectar() {
String url;
String usuario;
String senha;
try {
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://localhost:3306/dwjdb";
usuario = "flavio";
senha = "22445511";
con = DriverManager.getConnection(url,usuario,senha);
return true;
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
public void fechar() {
try {
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
public Connection getConexao()
{
return con;
}
}[/code]
[code]package database;
import java.sql.*;
public class Agenda {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
public void setConexao(Connection con) {
this.con = con;
}
public boolean inserir(String nome, char sexo, int dia_niver, int mes_niver, String fone)
{
try {
int id = gerarId();
ps = con.prepareStatement("INSERT INTO agenda VALUES (?, ?, ?, ?, ?, ?)");
ps.setInt(1, id);
ps.setString(2, nome);
ps.setString(2, String.valueOf(sexo));
ps.setInt(4, dia_niver);
ps.setInt(5, mes_niver);
ps.setString(6, fone);
ps.executeUpdate();
return true;
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
}
public int gerarId()
{
String novoId;
try {
ps = con.prepareStatement(“SELECT MAX(id) as novoid FROM agenda”);
rs = ps.executeQuery();
rs.next();
novoId = rs.getString("novoid");
if (novoId == null)
return 1;
else
return Integer.parseInt(novoId) + 1;
}
catch (Exception e)
{
e.printStackTrace();
return 0;
}
}
public boolean atualizar(int id, String nome, char sexo, int dia_niver, int mes_niver, String fone)
{
try {
ps = con.prepareStatement("UPDATE agenda " +
"SET nome = ?, " +
"sexo = ?, " +
"dia_niver = ?, " +
"mes_niver = ?, " +
"fone = ?, " +
"WHERE id = ?");
ps.setString(1, nome);
ps.setString(2, String.valueOf(sexo));
ps.setInt(3, dia_niver);
ps.setInt(4, mes_niver);
ps.setString(5, fone);
ps.setInt(6, id);
ps.executeUpdate();
return true;
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
}
public boolean excluir(int id)
{
try {
ps = con.prepareStatement("DELETE FROM agenda WHERE id = ?");
ps.setInt(1, id);
ps.executeUpdate();
return true;
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
}
public ResultSet listar()
{
try {
ps = con.prepareStatement("SELECT * FROM agenda");
rs = ps.executeQuery();
return rs;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
}[/code]
[code]<jsp:useBean id=“conexao” scope=“page” class=“database.ConexaoBd” />
<jsp:useBean id=“agenda” scope=“page” class=“database.Agenda” />
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>
Inserir agenda <% String nome = request.getParameter("nome"); char sexo = request.getParameter("sexo").charAt(0); int dia_niver = Integer.parseInt(request.getParameter("dia_niver")); int mes_niver = Integer.parseInt(request.getParameter("mes_niver")); String fone = request.getParameter("fone");conexao.conectar();
agenda.setConexao(conexao.getConexao());
if (agenda.inserir(nome, sexo, dia_niver, mes_niver, fone))
out.println(“
Contato cadastrado com sucesso!
”);else
out.println(“
Erro ao tentar cadastrar contato!
”);conexao.fechar();
%>
Voltar
o último é que faz a inserção, coisa que não da certo de jeito nenhum, sempre da o erro do else ai, aparece a mensagem Erro ao tentar cadastrar contato!
Obrigado pela ajuda…