Olá pessoal… dando continuidade ao material em que estou estudando me deparei com um erro no meu código que não estou conseguindo assimilar…
Vejam…
Minha Classe Cliente:
package capitulo08;
import java.sql.*;
public class Cliente {
private int idcliente = 0;
private String nome = "";
private String endereco = "";
private String cidade = "";
private String email = "";
private String senha = "";
public void setIdcliente(int idcliente) {
this.idcliente = idcliente;
}
public int getIdcliente() {
return this.idcliente;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getnome() {
return this.nome;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEndereco() {
return this.endereco;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCidade() {
return this.cidade;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return this.email;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSenha() {
return this.senha;
}
public boolean incluir() {
boolean resultado = false;
Connection con = Conexao.getConnection();
String sql =
"insert into cliente(nome,endereco,cidade,email,senha) ";
sql +=
"values('"+this.nome+"',"+this.endereco+",";
sql += this.cidade+","+this.email+","+this.senha+")";
try {
Statement st = con.createStatement();
st.executeUpdate(sql);
resultado = true;
} catch(SQLException e) {
resultado = false;
} catch(Exception e) {
resultado = false;
}
return resultado;
}
public boolean alterar() {
boolean resultado = false;
Connection con = Conexao.getConnection();
String sql = "update cliente";
sql += "set nome = '"+this.nome+"', ";
sql += "endereco = "+this.endereco+", ";
sql += "cidade = "+this.cidade+", ";
sql += "email = "+this.email+", ";
sql += "senha = "+this.senha;
sql += " where idcliente= "+this.idcliente;
try {
Statement st = con.createStatement();
int numRegs = st.executeUpdate(sql);
if (numRegs>0)
resultado = true;
else
resultado = false;
} catch(SQLException e) {
resultado = false;
} catch(Exception e) {
resultado = false;
}
return resultado;
}
public boolean excluir() {
boolean resultado = false;
Connection con = Conexao.getConnection();
String sql = "delete from cliente ";
sql += "where idcliente = "+this.idcliente;
try {
Statement st = con.createStatement();
int numRegs = st.executeUpdate(sql);
if (numRegs>0)
resultado = true;
else
resultado = false;
} catch(SQLException e) {
resultado = false;
} catch(Exception e) {
resultado = false;
}
return resultado;
}
public boolean buscar() {
boolean resultado = false;
Connection con = Conexao.getConnection();
String sql = "select * from cliente";
sql += " where idcliente="+this.idcliente;
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
if (! rs.next()) {
resultado = false;
}
else {
this.nome =
rs.getString("nome");
this.endereco =
rs.getString("endereco");
this.cidade = rs.getString("cidade");
this.email = rs.getString("email");
this.senha = rs.getString("senha");
resultado = true;
}
} catch(SQLException e) {
resultado = false;
} catch(Exception e) {
resultado = false;
}
return resultado;
}
}
Minha Classe Conexão:
package capitulo08;
import java.sql.*;
public class Conexao {
public static String status ="";
public static Connection getConnection() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url =
"jdbc:mysql://127.0.0.1/tarcisio?user=root&password=root";
con = DriverManager.getConnection(url);
status = "Conexão aberta";
} catch (SQLException e){
status = e.getMessage();
}catch (Exception e) {
status = e.getMessage();
}return con;
}
}
Meu Form que recebe os dados do cliente:
<html>
<head>
<title>Proposto 07</title>
</head>
<body>
<center>
<h1>Proposto 07 ? Java Bean</h1>
<hr>
<br>
<table border="0">
<tr>
<td>
<form action="proposto07b.jsp">
Nome: <input type="text" name="nome" size="40"><br>
Endereço: <input type="text" name="endereco" size="40"><br>
Cidade: <input type="text" name="cidade" size="40"><br>
E-mail: <input type="text" name="email" size="30"><br>
Senha: <input type="text" name="senha" size="10"><br>
<input type="submit" value="Gravar" name="enviar">
</form>
</td>
</tr>
</table>
<br>
<hr>
Meu Form que chama o método incluir e grava:
<html>
<head>
<title>Proposto 07</title>
</head>
<body>
<center>
<h1>Proposto 07 ? Java Bean</h1>
<hr>
<br>
<jsp:useBean id="objCliente" scope="session"
class="capitulo08.Cliente" />
<jsp:setProperty name="objCliente" property="*" />
<%
if(objCliente.incluir())
out.println("<h2>Cliente cadastrado com sucesso!</h2>");
else
out.println("<h2>Erro na gravação do Cliente!</h2>");
%>
<br>
<hr>
</body>
</html>
Aí que vem o erro, ele não grava no banco e retorna a mensagem condicional do caso alternativo…
Onde estou errando?
Obs.: no banco esta tudo Ok… insiro dados e consulto-os… mas pelo form é me retornado esse erro.
Aguardo uma posição…