Tenho uma tabela produto onde o produto possui um id
Outra tabela filial onde a filial tbm possui um id
se eu fosse fazer um insert, o id seria inserido na tabela auxiliar ou nas outras tabelas? pois o id tem q estar presente nas 2.
Tenho uma tabela produto onde o produto possui um id
Outra tabela filial onde a filial tbm possui um id
se eu fosse fazer um insert, o id seria inserido na tabela auxiliar ou nas outras tabelas? pois o id tem q estar presente nas 2.
Boa noite seria inserido na tabela produto!
Não esqueça que a tua tabela intermediária existe para manter a integridade dos teus dados.
O SGBD gera automaticamente - se você assim definir, um ID para tua chave primaria.
Sendo assim você pode usar um método que captura o ID e insere na tua tabela intermediária sempre
que uma nova linha for inserida na tua tabela.
Nossa e como faz isso? srsr s pq qdo eu faço um insert é apenas em 1 tabela
O SQL admite insert com select.
Exemplo:
INSERT INTO banco.tabela-destino (campo1, campo2, campo3...)
SELECT campo1,campo2,campo3... FROM banco.tabela-origem;
No caso você utiliza esta instrução no método que vai inserir o ID na tabela intermediária.
Você faz um select para capturar o ID cujo o nome do produto ou algo exclusivo ao produto e insere na tabela intermediária.
ok?
Qualquer duvida, estamos aqui.
estou fazendo assim.. porem não entendi direito seu exemplo
Connection conn = Conexao.getConnection();
//Obtendo a conexão com o BD
//Criando a string com sql a ser executada
String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?)";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement(sql);
//Definindo o primeiro parâmetro
pst.setInt(1, ocorrencia.getIDOcorrencia());
pst.setString(2, ocorrencia.getDescricao());
// pst.setString(3,ocorrencia.getVeiculo().getDescricao());
//Definindo o segundo parâmetro
pst.setString(3, ocorrencia.getData());...............
Dá uma olhada no exemplo
String SQL = "INSERT INTO usuario (NomeFuncionario, NomeDeUsuario, SenhaDeUsuario, Email, Cargo, Area, Especialidade, Historico, DataCadastro, Status_Id)" +
"values(?,?,?,?,?,?,?,?,?,?)";
conne = this.conn;
pse = conne.prepareStatement(SQL);
pse.setString(1, user.getNomeFuncionario());
pse.setString(2, user.getNomeUsuario());
pse.setString(3, "xxx@123");
pse.setString(4, user.getEmail());
pse.setString(5, user.getCargo());
pse.setString(6, user.getArea());
pse.setString(7, user.getEspecialidade());
pse.setString(8, user.getHistorico());
Utilitario util = new Utilitario();
String dataF = util.convertToString(new Date());
pse.setString(9, dataF);
pse.setString(10, user.getStatus());
pse.executeUpdate();
//Vinculando o usuário a um grupo inicial
pse = conne.prepareStatement("SELECT ID FROM usuario WHERE usuario.Email LIKE '" + user.getEmail() + "' ");
resultSet = pse.executeQuery();
while (resultSet.next()) {
user.setIdUsuario(resultSet.getLong(1));
}
public boolean vincularUsuarioTipoGrupo(Usuario user) throws Exception {
PreparedStatement pse = null;
Connection conne = null;
try {
String SQL = "INSERT INTO grupo_usuario_tipo(Usuario_Id, Grupo_Id, TipoUsuario_Id, DataAssociacao)" +
" values(?,?,?,?)";
conne = this.conn;
pse = conn.prepareStatement(SQL);
Utilitario util = new Utilitario();
String dataF = util.convertToString(new Date());
pse.setLong(1, user.getIdUsuario());
//Se o tipo selecionado for administrador ele será cadastrado no grupo administradores.
String res = user.getGrupo().getIdGrupo().toString();
pse.setString(2, res);
pse.setString(3, user.getIdTipoUsuario());
pse.setString(4, dataF);
pse.executeUpdate();
Aquele metodo booleano vc esta usando para que?