Bem, estou começando a aprender java web e preciso de uma ajuda para quem ja entende um pouco de conexao entre java e o banco de dados !
Quero fazer apenas um formulario simples com nome,idade , data(do cadastro) e um botao que cadastra o usuario. Entretanto, nao esta dando certo.
O codigo nao apresenta erro algum, porem tambem nao efetua o cadastro =(
Criei no banco uma database chamada locadora e dentro desta, uma tabela chamada cliente que tem cli_nome,cli_codigo ( ambos varchar ) e cli_data (date) .
Depois instalei o servidor do tomcat 7.0 no eclipse, para evitar ter que ficar importando o JDBC connector para todos os projetos web eu o coloquei direto na biblioteca de jars do tomcat.
Quando eu executo o meu codigo aparece no console que o contato foi gravado porem quando vou no prompt e coloco o comando select * from cliente; aparece apenas “empty set”.
Nao sei mais o que fazer :shock: !!! se alguem souber o que pode estar errado ou entao tiver algum codigo mesmo que nao seja em java pra web em que um exemplo de conexao ja esteja funcionando e puder me enviar eu ficaria muito grato.
Repito que sou muito novo com programaçao web no geral e banco de dados. Sempre usei linked lists e bloco de notas para armazenar dados :lol:
Se alguem tambem puder me indicar algum bom livro que nao seja o “use a cabeça” ou o “deitel” ( Mesmo sendo tao elogiados , Nao gostei deles quando estava aprendendo OO
entao presumo que nao vou gostar para aprender jsp ) ou apostila que nao seja da caelum (pois ja tenho
)
package Bank;
import java.sql.*;
import App.Clientes;
public class clienteDAO {
private Connection conexao;
public clienteDAO(Connection con){
this.conexao = con;
}
public void addCliente(Clientes cli){
String comando = "insert into cliente (cli_nome, cli_codigo,cli_data) values(?,?,?)";
try {
PreparedStatement stmt = this.conexao.prepareStatement(comando);
stmt.setString(1,cli.getNome());
stmt.setString(2,cli.getId());
stmt.setDate(3,new java.sql.Date( cli.getData().getTime() ) );
} catch (Exception e) {
System.out.println("* Erro no statement ! \n " + e + "*\n" );
}
System.out.println("********** gravado com Sucesso **********");
}
}
//****************************************** OUTRA CLASSE *************************************************
package Bank;
import java.sql.Connection;
import java.sql.DriverManager;
public class Fabrica {
private Connection conexao;
public Connection startConexao(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
try {
conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/locadora","root", "[i]SENHA[/i]");
} catch (Exception e) {
System.out.println("* Erro na classe Fabrica ! \n Metodo startConexao \n Variavel Drive Manager : \n" + e + "*\n");
}
} catch (Exception e) {
System.out.println("* Erro na classe Fabrica ! \n Metodo startConexao : \n no forName \n " + e + "*\n" );
}
return conexao;
}
public void closeConexao(){
try {
conexao.close();
} catch (Exception e) {
System.out.println("* Erro na finalizaçao da conexao da classe Fabrica \n " + e + "*\n");
}
}
}
//***************************************** Outro Pacote *************************************************
package App;
import java.util.Date;
public class Clientes {
// PARA GERAR GETTERS E SETTERS AUTOMATICAMENTE APERTE CTRL + 3 E DIGITE
// GGAS
private String cli_nome;
private String cli_codigo;
private Date data;
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getNome() {
return cli_nome;
}
public void setNome(String nome) {
this.cli_nome = nome;
}
public String getId() {
return cli_codigo;
}
public void setId(String id) {
this.cli_codigo = id;
}
}
// ******************************* JSP ***********************************
<%@page import="App.Clientes"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Primeiro Site</title>
</head>
<body>
<form action="InserirContato" method="post">
Nome : <input name="nome" type="text"><br>
Código : <input name="codigo" type="text"><br>
Data : <input name="data" type="text"><br>
<input name="botCadastro" type="submit" align="middle">
</form>
</body>
</html>
// ************************************* açao do botao cadastro ****************************************8
package Action;
import java.io.IOException;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Bank.*;
import App.Clientes;
@WebServlet("/InserirContato")
public class InserirContato extends HttpServlet {
private static final long serialVersionUID = 1L;
public InserirContato() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Salvando Contato");
//Criando conexao
Fabrica fabrica = new Fabrica();
Connection conexao = fabrica.startConexao();
clienteDAO clienteDao = new clienteDAO(conexao);
//seta dados no cliente
Clientes cli = new Clientes();
cli.setNome(request.getParameter("nome"));
cli.setId(request.getParameter("codigo"));
Date data = null;
try {
data = new SimpleDateFormat("dd/MM/yyyy").parse(request.getParameter("data"));
} catch (Exception e) {
System.out.println("* Erro na Data " + e + "*\n");
}
cli.setData(data);
clienteDao.addCliente(cli);
fabrica.closeConexao();
System.out.println("\n Conexao encerrada");
}
}