Exemplo de select no banco

7 respostas
mirrah

É 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

gabrielemidio

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

isaiaspf

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.

pmlm

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

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…

ricktg

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

mirrah

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