CRUD com Banco de Dados Relacional

8 respostas
C

Boa noite pessoal.
Estou com um tremendo problema, estou tentando criar um CRUD que pega informações de 3 tabelas diferentes

Estou utilizando JSP com servlet no Eclipse. Alguém tem alguma coisa parecida pra me enviar, para que possa fazer o meu pequeno projeto? alguma dica, qualquer coisa.

1 Tabela:
CREATE TABLE tb_cliente
(
cliente_id integer NOT NULL,
cidade_id character(5),
sexo character(1),
senha character(50),
email character(30),
nome character(30),
data_nacimento date,
endereco character(100),
cep character(8),
logradouro character(30),
tipo_user character(2),
CONSTRAINT tb_cliente_pkey PRIMARY KEY (cliente_id),
CONSTRAINT tb_cliente_cidade_id_fkey FOREIGN KEY (cidade_id)
REFERENCES tb_cidade (cidade_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION

2 Tabela:
CREATE TABLE tb_cidade
(
cidade_id character(5) NOT NULL,
uf_id integer,
nome character(50),
CONSTRAINT tb_cidade_pkey PRIMARY KEY (cidade_id),
CONSTRAINT tb_cidade_uf_id_fkey FOREIGN KEY (uf_id)
REFERENCES tb_uf (uf_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION

3 Tabela:

CREATE TABLE tb_telefone
(
telefone_id integer NOT NULL,
cliente_id integer,
tel_comercial character(15),
tel_celular character(15),
tel_fixo character(15),
CONSTRAINT tb_telefone_pkey PRIMARY KEY (telefone_id),
CONSTRAINT tb_telefone_cliente_id_fkey FOREIGN KEY (cliente_id)
REFERENCES tb_cliente (cliente_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION

8 Respostas

M

Vamos lá para o básico:

Qual o problema que voce está tendo? Imprima a mensagem de erro, exceptions etc
Insira o código que está gerando o erro

Se não vai ficar um pouco dificil de ajudar

bobboyms

Tente esse componente! para facilitar seu trabalho

http://code.google.com/p/jpa-component/wiki/Doc_PT_Br

C

melges:
Vamos lá para o básico:

Qual o problema que voce está tendo? Imprima a mensagem de erro, exceptions etc
Insira o código que está gerando o erro

Se não vai ficar um pouco dificil de ajudar

Cara não ta aparecendo erro nenhum ainda. Eu não sei como começar.
Tenho um formulário que usa dados das 3 tabelas, tenho que criar uma DAO para salvar, excluir, listar… nas tres tabelas e não sei como fazer.

M

Vc está com dúvida na criação do dao, como fazer a conexão com o banco ou como obter os dados do usuário?

Vc deve crirar um jsp com o formulário onde o cara vai digitar os dados, criar um servlet onde os dados derão recebidos e os daos que farao o trabalho de incluir, editar ou excluir os dados.
A apostila fj 21 da caelum ensina muito bem como fazer isso. Sugiro que dê uma olhada.

Anime

Oi,

C

Oi galera, o problema que estava tendo ja consegui resolver.
agora estou com outro.
Como faço para pegar o ultimo ID e inserir na FK em outra tabela.

Tenho a tb_cliente com ID autoincrement e outra tb_telefone FK da tb_cliente.

Como faço para pegar esse valor e inserir na outra tabela?

M

Use o método getGeneratedKeys() de Statement.

http://www.selikoff.net/2008/09/03/database-key-generation-in-java-applications/ (veja a técnica 2)

C

Tudo bem, posso usar a função MAX para pegar o ultimo valor e inserir em outra table.
Mas teria como me passar um exemplo de como fazer isso, em uma servlet

public class ClienteDAO {

public Cliente salvarTB_cliente(Cliente cliente) {
	Connection con = FabricaConexao.getConnection();
	PreparedStatement ps = null;
	@SuppressWarnings("unused")
	ResultSet rs = null;
	try {
		ps = con.prepareStatement("INSERT INTO tb_cliente(nome, email, senha, sexo, cpf_cnpj, ie_rg, endereco, cep, bairro)"
				+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
	
		int index = 1;
		ps.setString(index++, cliente.getNome());
		ps.setString(index++, cliente.getEmail());
		ps.setString(index++, cliente.getSenha());
		ps.setString(index++, cliente.getSexo());
		ps.setString(index++, cliente.getCpf_cnpj());
		ps.setString(index++, cliente.getIe_rg());
		ps.setString(index++, cliente.getEndereco());
		ps.setString(index++, cliente.getCep());
		ps.setString(index++, cliente.getBairro());
		

		ps.execute();

		ps.close();
		con.close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return cliente;

}
[size=18]Quero inserir o ultimo id da tabela cliente e colocar na tabela telefone:

[/size]

public Telefone salvarTB_telefone(Telefone telefone) {

Connection con = FabricaConexao.getConnection();

PreparedStatement ps = null;

@SuppressWarnings(unused)

ResultSet rs = null;

try {

ps = con.prepareStatement(INSERT INTO tb_telefone(tel_celular,

+ " tel_fixo, tel_comercial)VALUES (?, ?, ?);");
int index = 1;
		ps.setString(index++, telefone.getTel_celular());
		ps.setString(index++, telefone.getTel_residencial());
		ps.setString(index++, telefone.getTel_comercial());

		ps.execute();
		ps = con.prepareStatement("insert into tb_telefone ")
		ps.close();
		con.close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return telefone;
}
Criado 7 de outubro de 2011
Ultima resposta 19 de out. de 2011
Respostas 8
Participantes 5