Exemplo de select no banco

7 respostas
M

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

7 Respostas

G

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

I

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.

P

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

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…

R

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

M

pow gente valeu mesmo.

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

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!

P
Ola,
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();
				}
Espero que ajude! :)
Criado 12 de julho de 2011
Ultima resposta 13 de jul. de 2011
Respostas 7
Participantes 7