Conexao.fechar()

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

[/code]

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…

Quando você executa este código, o console da IDE (Eclipse ou Netbeans) printa um stackTrace de erro.
Por favor, copie e cole este erro para verificarmos.

Um chute, você está importando o driver de conexão?

Uso o eclipse helios, mas ele não da nenhum stackTrace, ou se dá não sei onde acho ele, somente roda a página e da a mensagem que não pode ser cadastrado.

Sobre o chute, você diz de add external jars e colocar o jar do sql lá? Se for isso fiz sim.

Quando o erro aparecer, vá até o eclipse e procure pela aba “Console”. Ali deve estar o stackTrace do erro, afinal há uma chamada para isto no catch, antes do return false.

Olá amigos, já achei o erro, agradeço as respostas, no array do primeiro código tinha repetido o valor 2, por isso dava erro, mas não respondia nenhum erro específico pra mim.

Obrigado!

[quote=drsmachado]Quando você executa este código, o console da IDE (Eclipse ou Netbeans) printa um stackTrace de erro.
Por favor, copie e cole este erro para verificarmos.

Um chute, você está importando o driver de conexão?[/quote]

Exatamente.

Sempre que possível poste o erro e tente ser o mais sucinto com as palavras assim que
manja mesmo bate o olho e já saca ao invés de ficar lendo e lendo rs…

Abraços,