Boa tarde pessoALL.
Cheguei ao meu limite com o problema de um INSERT em tabelas relacionadas.
Como inserir dados em tabelas relacionadas?
Por exemplo:
tabela login
- idLogin - PK
- senha
tabela usuario
-idUsuario
-nome
-end
-telefone
- idLogin - FK
Primeiro tenho que inserir os dados na tabela login depois em usuario
como faço para pegar o AUTO_INCREMENT da tabela login?
Lembrando que AUTO_INCREMENT é uma chave privada de login, que a cada inserção é
gerada a chave que vai identificar o email e senha
do usuario.
O meu código é um cadastro de usuário onde tenho os dados de usuário e login.
Após submeter a entrada primeiro ele insere os dados de login depois o dados de
usuário.
Ou seja como faço para pegar o AUTO_INCREMENT da tabela login "PK"e jogar no
INSERT da tabela usuário automatico.
1 - Primeiro estou usando a classe LoginDAO para fazer o ISERT
INSERT INTO login (email,senha) values(?,?)
2 - Segundo após o INSERT na tabela login tento fazer o insert na tabela usuario e ai que não estou conseguindo.
INSERT INTO usuario (nome,end,telefone //idLogin como faço para pegar o
autoIncremento? ) values(?,?,?,?)
public class Apresentacao<T> {
public void cadastrarDados(T objeto) {
if (objeto instanceof Usuario) {
Usuario usuario = new Usuario();
Login login = new Login();
String nome = JOptionPane.showInputDialog("Nome :");
usuario.setNome(nome);
String endereco = JOptionPane.showInputDialog("Endereco :");
usuario.setEndereco(endereco);
String telefone = JOptionPane.showInputDialog("Telefone :");
usuario.setTelefone(telefone);
String email = JOptionPane.showInputDialog("E-mail :");
login.setEmail(email);
String senha = JOptionPane.showInputDialog("Senha :");
login.setSenha(senha);
LoginControle loginControle = new LoginControle();
UsuarioControle usuarioControle = new UsuarioControle();
if (loginControle.verificarDados(login) && usuarioControle.verificarDados(usuario) ) {
JOptionPane.showMessageDialog(null, "Usuario gravado com sucesso !");
} else {
JOptionPane.showMessageDialog(null, "Não possível gravar o usuario !");
}
}
}
}
----------------------------------------------------------------------------------------------------------------------------
public class LoginControle {
public boolean verificarDados(Login login) {
LoginDAO loginDAO = new LoginDAO();
if (loginDAO.inserirDados(login)) {
return true;
}
return false;
// loginDAO loginDAO = new LoginDAO(usuario);
}
}
----------------------------------------------------------------
public class LoginDAO {
public boolean inserirDados(Login login) {
Connection con = Conexao.conectar();
String inserir = "INSERT INTO login(email,senha) VALUES(?,?)";
try {
PreparedStatement pst = con.prepareStatement(inserir);
pst.setString(1, login.getEmail());
pst.setString(2, login.getSenha());
pst.execute();
con.close();
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}
------------------------------------------------------------------------------------------------------
public class UsuarioControle {
public boolean verificarDados(Usuario usuario){
UsuarioDAO usuarioDAO = new UsuarioDAO();
if(usuarioDAO.inserirDados(usuario)){
return true;
}
return false;
// loginDAO loginDAO = new LoginDAO(usuario);
}
}
--------------------------------------------------------------------------------------------------------
public class UsuarioDAO {
public boolean inserirDados(Usuario usuario) {
Connection con = Conexao.conectar();
String inserir = "INSERT INTO usuario(nome,endereco,telefone,idLogin) values(?,?,?,?)"; // COMO FAÇO PARA PEGAR O IDLOGIN AUTO_INCREMENTO DA TABELA LOGIN
try {
PreparedStatement pst = con.prepareStatement(inserir);
// pst.setInt(1, usuario.getCodigo());
pst.setString(1, usuario.getNome());
pst.setString(2, usuario.getEndereco());
pst.setString(3, usuario.getTelefone());
pst.execute();
con.close();
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}