É com muitíssima vergonha que venho ao fórum pedir à alguma alma caridosa que me faça um exemplo de select no banco de dados, pois eu aqui não estou sabendo fazer, não sei se o problema que estou enfrentando é com SQL, ou com sintaxe Java. Mas assim, eu queria selecionar dois valores no banco, e não fazer um select em uma tabela inteira. Antes de pedir o exemplo aqui, eu pesquisei um pouco no google para ver se eu achava alguma coisa, mas não achei exemplos de select que quero.
Oi Mirrah esse seria um select que vc está querendo?! mat e sen serial uma variavel que estaria recebendo os valores informado pelo usuário ou a propria JTextField ou algo do tipo.
Ou você pode usar o PreparedStatement:String sql = "SELECT matricula, senha FROM funcionario WHERE matricula = \"" + mat + "\" AND senha =\"" + sen + "\"");
PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = preparedStatement.executeQuery();Abraço.
Esse jeito de concatenar valores na query traz problemas futuros.
Por exemplo, coloque um date formatado ai para ser inserido no banco de dados e depois mude o idioma do servidor.
Se seu select é executado muitas vezes e voce utilizado concatenando os valores no filtro, o banco de dados entende que é um select diferente do anterior e faz o PARSE de novo e depois o execute.
Se utilizar o PreparedStatement, o banco identifica o select como sempre o mesmo e não faz o PARSE novamente. Apenas executa. Isso faz com que seu sql retorne os dados com muito mais rapidez e não utilize tantos recursos do banco de dados para traze-los.
Mas não dessa forma. Os parâmetros não devem ser colocados directamente no sql com concatenação de Strings.
view plaincopy to clipboardprint?
String sql = “SELECT matricula, senha FROM funcionario WHERE matricula = ? AND senha = ?”);
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, mat);
preparedStatement.setString(2, sen);
ResultSet resultSet = preparedStatement.executeQuery(); [/quote]
Mas pmlm eu fiz exatamente como você descreveu ai e não funcionou, dispara a SQLExpecion. Bom vou dar mais uma vez no código, de repente foi um erro de digitação meu.
}
catch(Exception e1) {
JOptionPane.showMessageDialog(null, "Erro na conexÄo com o banco");
e1.printStackTrace();
}
try{
resultado=comando.executeQuery("SELECT matricula, senha FROM funcionario WHERE matricula = “+valorMatricula+” AND senha = “+valorSenha+” ");
if(resultado.next())
{
//utiliza o resultado da pesquisa
}