Exemplo de select no banco

É 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.

Aqui vai o estilo que select quero:

Desde já muitíssimo agradecido! :smiley:

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.

Qualquer duvida manda ai se puder ajudar ^^.

att

Opa.

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.

Pode não, DEVE!

Mas não dessa forma. Os parâmetros não devem ser colocados directamente no sql com concatenação de Strings.

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();  

Como o pmlm disse.
Use PreparedStatement.

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.

Tem outras vantagens ai que a galera deve citar…

PreparedStatement com certeza.

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.

Abs

pow gente valeu mesmo.

[quote]Pode não, DEVE!

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.

Mesmo assim valeu mesmo!

Ola,

[code]Connection conexao;
Statement comando;
ResultSet resultado;

try {
conexao = conecta.conectabanco();
comando = conexao.createStatement();

	}
	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
}

			}
			catch(Exception g)
			{
				JOptionPane.showMessageDialog(null, "Erro ao pesquisar.\nPor favor verifique!");
				g.printStackTrace();
			}

[/code]
Espero que ajude!
:slight_smile: