Pessoal,
Em minha aplicação java, eu tenho uma classe UsuarioDAO que tem o seguinte código:
public int procuraUsuario( Usuario usuario ) {
try {
// Cria a consulta de usuários no banco de dados.
PreparedStatement consultaUsuario = connection.prepareStatement( "SELECT * FROM alunos WHERE Usuario = ? AND Senha = ? UNION SELECT * FROM professores WHERE Usuario = ? AND Senha = ?" );
// Passa o nome de usuário e senha digitados pelo usuário na tela de login para a consulta
consultaUsuario.setString( 1, usuario.getUsuario() );
consultaUsuario.setString( 2, usuario.getSenha() );
consultaUsuario.setString( 3, usuario.getUsuario() );
consultaUsuario.setString( 4, usuario.getSenha() );
resultSet = consultaUsuario.executeQuery();
if( resultSet.next() == true ) {
// retorna um número se existir o usuário, ou seja, a consulta foi bem sucedida.
}
else {
// retorna um número se não existir o usuário
}
}
catch( SQLException sqlE ) {
throw new RuntimeException( sqlE );
}
return -1;
} // fim do método procuraUsuario
Como vocês podem ver, eu consulto em duas tabelas com a query:
“SELECT * FROM alunos WHERE Usuario = ? AND Senha = ? UNION SELECT * FROM professores WHERE Usuario = ? AND Senha = ?”
Eu gostaria de saber se tem alguma forma de eu fazer para saber de qual tabela veio o resultado. Se veio da tabela alunos ou professores. Porque quando eu faço isso:
resultSet.next()
Não tem como saber de qual tabela veio. E mais uma coisa, eu uso if ao invés de while porque minha consulta é específica, ou ele acha, ou não acha.