Duvida de iniciante

3 respostas
F

Galera eu estou com uma duvida muito boba, mas como seria o codigo (exemplo) de um inserção no banco de dados com uma chave estrangeira?
exemplo eu vou inserir uma empresa e o campo cidade e uma chave estrangeira, entao eu criaria dois beans um de cada tipo com seus respectivos dados seria isso? Mas se a chave da tabela cidade e auto increment como eu faria isso? pode ser um exemplo bem simples msm !

valeu!!!
ps:olhei no forum mas so tem sobr hibernate o exemplo pode ser com jbdc msm.

3 Respostas

TDS

Foxan, de uma olhada/lida/entendia com calma sobre DAO - Data Access Object (Procure sobre este assunto que tem muita coisa no forum)!

Procure por ler sobre coisas mais especificos como Connection, PreparedStatement, ResultSet.

Entenda este conceitos e pesquise nesta linha.

Um link legal http://www.exampledepot.com/.

Dai com certeza voce dara um grande passo e colocara outras duvidas, mas eh isto ai, manda ver!

Pense: “Vale a pena investir no hibernate, esta bombando!”

[]'s e boa sorte! :wink:

Obs.: Desculpe pela falta de acentos!

T

Blz?

Concordo com o TDS. Complementando o que o TDS comentou, criamos uma camada na aplicação para realizar os acessos ao banco de dados (DAO - data access object). No caso de vc querer salvar uma classe no banco que tenha como atributo outra, existem algumas altenativas:

  • Salvar separado (cada tabela terá seu DAO)
  • Salvar usando o mesmo DAO já salta as duas tabelas
  • Usar framework de persistência (o famoso Hibernate)

Para iniciar recomento usar uma das duas primeiras opções.

Espero ter ajudado.

C

Opa,
A turma tem razao o esquema e utilizar Design Patterns, o DAO e uma boa escolha, mas como
vc pediu um exemplo simples ai vai
Mysql pode ser??

primeiro a conexao ( vc poderia utilizar um pool de conexoes, nao e o caso do exemplo )

import java.sql.*;
import tarefa1.interfaces.*;

public class Conexao{
	
	public static Connection createConnection(){
		
		Connection conn = null;
		
		try {
 			Class.forName("com.mysql.jdbc.Driver");
 		} catch (ClassNotFoundException e) {
 			e.printStackTrace();
 		}
 		try {
 			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/finance", "root", "root");
 		} catch (SQLException e) {
 			e.printStackTrace();
 		}
		
		return conn;
	}
	

}

Agora, utilizando a conexao criada para inserir os dados:

private Connection conn = Connection.createConnection();
	private Statement stm      = null;
	private ResultSet rs         = null;
	
//      metodo generico para inserir dados
	
        public boolean insert( String sqlClause ){
	
		boolean result;
		
		try {
			
			stm = conn.createStatement( );
			result = stm.execute( sqlClause );
			stm.close();
			
			return true;
			
		} catch (Exception e) {
			
			e.printStackTrace();
			return false;
		}
		
	}

//-----------------------------chamada ao metodo generico insert 

   String sqlInsert = "INSERT INTO tabela (`campo1`,`campo2`,`campo3`)" +
                              "VALUES ('" + dadosCampo1 + "','" + dadosCampo2 + "', '" + dadosCampo3 + "');

   if( insert( sqlInsert ) ){
      System.out.println("Dados Inseridos com sucesso");
   }else{
       System.out.println("Erro");
   }

Veja que a chave primaria nao e colocada em sqlInsert, justamente por ser autoincrement. O mysql trata isso pra vc!!!

O exemplo e bem basico, ilustrativo, espero ter ajudado,

mas entenda o DAO, a coisa fica muito mais organizada :thumbup:

Criado 24 de agosto de 2007
Ultima resposta 27 de ago. de 2007
Respostas 3
Participantes 4