Problemas com conexao Java(EE)-Mysql

3 respostas
fcf

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 :cry: entao presumo que nao vou gostar para aprender jsp ) ou apostila que nao seja da caelum (pois ja tenho :wink:)

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");
	}

}

3 Respostas

BrunoFurtado

Opa,

Cara, olhando teu fonte meio por cima…

Tente alterar esta linha da classe Fabrica:

// newInstance() desnecessário...
Class.forName("com.mysql.jdbc.Driver").newInstance();

// alterar para...
Class.forName("org.gjt.mm.mysql.Driver");

Não sei qual o driver que vc esta utilizando, mas tente utilizar este:
http://dev.mysql.com/downloads/connector/j/3.0.html

carlos.e.a

Faltou o execute() do teu statement ne irmaozinho…stmt.execute();

Quanto o material para JSP pode ser uma boa voce fazer esse curso:

Ele foi indicado aqui mesmo no GUJ pelo wender.jean

É gratuito e parece ter uma boa proposta.

Té.

fcf

BrunoFurtado:
Opa,

Cara, olhando teu fonte meio por cima…

Tente alterar esta linha da classe Fabrica:

// newInstance() desnecessário...
Class.forName("com.mysql.jdbc.Driver").newInstance();

// alterar para...
Class.forName("org.gjt.mm.mysql.Driver");

Não sei qual o driver que vc esta utilizando, mas tente utilizar este:
http://dev.mysql.com/downloads/connector/j/3.0.html

vlw bruno , deu certo aqui !!! a versao que eu uso é a mais recente “mysql-connector-java-5.1.18” !
O codigo que eu uso para conexao com o mysql muda com a versao do banco ?

Vlw tambem pela ajuda carlos ! Cara, fiz minha inscriçao tanto no curso de Web quanto no de desktop :lol: !

Criado 23 de janeiro de 2012
Ultima resposta 24 de jan. de 2012
Respostas 3
Participantes 3