Jóia ctdaa?
é justamente isso que eu estou precisando
fazer, mas eu sei um pouco de SQL e não
estou sabendo fazer essa consulta será
que vc ctdaa ou alguém poderia me dar
uma ajuda?
É um protocolo de boas práticas do fórum ensinar a pescar ao invés de dar o peixe… por isso vou dar umas dicas sem escrever o comando pronto… OK?
assim: do mesmo jeito que você preparou o insert:
Na String sql você vai colocar o comando select, mais ou menos assim:
“select codigo from usuario_sistema where id=?”
o critério de pesquisa você deve saber… só coloquei um exemplo.
depois vai usar o mesmo ps = conn.prepareStatement(sql);
e o ps.setString(1, valor_pesquisa);
depois o ps.execute vai te retornar um resultset de onde voce pega o resultado da pesquisa… o codigo que voce precisa.
É fácil… voce deve encontrar vários exemplos por ai.
(Nao sei se estou respondendo muito básico para a sua pergunta… mas como a pergunta foi básica também…)
OK?
Agora está me confundindo.
Você que inserir um técnico novo, certo? o id do técnico esta na tabela do usuario_sistema, já existe lá ou voce vai criar também o registro na tabela usuario_sistema?
Primeiramente , procure uma IDE para o Banco de Dados que vc utilize e execulte os codigos la primeiramente ,
o sql para pegar o nome tem q ser por Like pq vc nao tem previsao tipo assim .
Mas deste jeito vc nao tem precisao , tem que pegar algo que seja unico
select id_usuario from usuario_sistema
where upper(nome) like "JOAO JOSE%"
Um exemplo de unico eh vc pegar uma chave unica uma PrimaryKey , Uniquekey e talz …
Bom Estudo
deve ser tomados alguns cuidados com a forma como vai ser feita esta pesquisa, pois o resultado da consulta pode te retornar mais de um valor, no caso da falta de precisão citada acima pelo edmarr.
olá pessoal seguindo o conselho de todos
vc’s eu consegui chegar até aqui:
String id = "SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=?;";
String sql = "INSERT INTO tecnico(idUsuario, nome, telefone, celular, email)"
+ "VALUES(?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, tecnico.getNome());
int idUsuario = Integer.parseInt(id);
ps.setInt(2, idUsuario);
ps.setString(3, tecnico.getNome());
ps.setString(4, tecnico.getTelefone());
ps.setString(5, tecnico.getCelular());
ps.setString(6, tecnico.getEmail());
ps.executeUpdate();
Só que agora está aparecendo a seguinte
mensagem:
01/10/2009 13:23:01 teste.TesteGeral main
SEVERE: null
exception.LAFQADaoException: Erro ao inserir dadosjava.lang.NumberFormatException: For input string: "SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=?;"
at dao.TecnicoDao.salvarTecnico(TecnicoDao.java:59)
at teste.TesteGeral.main(TesteGeral.java:46)
Será que alguém poderia me dar uma ajuda?
O que eu fiz de errado?
Não sei como seria em java, mas farei tipo delphi e ai vc refaz pra java:
“SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=:pnome”;
se fosse delphi, eu pegaria esse parametro(pnome) e carregaria com o valor que um certa variável estaria entrando. Logo, você pode substituir o parametro pnome pela variável. Em java, não sei como funciona, pois estou aprendendo também, mas o conceito vale pra qualquer linguagem, pois isso é SQL ANSI puro.
[quote=ricardocomp]olá pessoal seguindo o conselho de todos
vc’s eu consegui chegar até aqui:
String id = "SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=?;";
String sql = "INSERT INTO tecnico(idUsuario, nome, telefone, celular, email)"
+ "VALUES(?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, tecnico.getNome());
int idUsuario = Integer.parseInt(id);
ps.setInt(2, idUsuario);
ps.setString(3, tecnico.getNome());
ps.setString(4, tecnico.getTelefone());
ps.setString(5, tecnico.getCelular());
ps.setString(6, tecnico.getEmail());
ps.executeUpdate();
Só que agora está aparecendo a seguinte
mensagem:
01/10/2009 13:23:01 teste.TesteGeral main
SEVERE: null
exception.LAFQADaoException: Erro ao inserir dadosjava.lang.NumberFormatException: For input string: "SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=?;"
at dao.TecnicoDao.salvarTecnico(TecnicoDao.java:59)
at teste.TesteGeral.main(TesteGeral.java:46)
Será que alguém poderia me dar uma ajuda?
O que eu fiz de errado?
[]'s.[/quote]
Oi,
Claro… olha o que você está fazendo:
[code]String id = “SELECT DISTINCT usuario_sistema.idUsuario FROM usuario_sistema INNER JOIN tecnico WHERE tecnico.nome=?;”;
int idUsuario = Integer.parseInt(id);[/code]
Ou seja, tentando “transformar” uma String não numérica em um numero inteiro. ?!?!
[quote=ctdaa]Agora está me confundindo.
Você quer inserir um técnico novo, certo? o id do técnico esta na tabela do usuario_sistema, já existe lá ou voce vai criar também o registro na tabela usuario_sistema?
[/quote]
Repito esta pergunta… pois como eh que voce vai inserir um técnico “novo” e quer pegar o nome dele de outra tabela com um código que nem foi criado ainda???
O seu problema é mais conceitual do que programação…
Coloque as definições de catalogo das tabelas tecnico e usuario_sistema para gente analisar… seria um bom começo pro pessoal dar a dica correta!
Jóia Pessoal?
o que eu estou querendo fazer é uma consulta onde eu passo o nome do Técnico
e a consulta me retorne o id_Usuario da Tabela Usuario correspondente aquele Técnico
Jóia Thiago?
Eu estou tentando fazer aqui mas não estou conseguindo
será que tem como vc ou alguém me dar uma ajuda aqui?
Eu construir o trecho de código assim:
SEVERE: null
exception.LAFQADaoException: Erro ao inserir dadosjava.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at dao.TecnicoDao.salvarTecnico(TecnicoDao.java:62)
at teste.TesteGeral.main(TesteGeral.java:47)
Você quer pegar o usuário do sistema correspondente àquele técnico específico (passa o nome do técnico e pega as informções do usuário correspondente)? Se for, tente fazer o seguinte:
String sql = "SELECT u.* FROM usuario_sistema AS u, tecnico AS t WHERE t.nome = ? AND u.id = t.id_usuario";
ps = conn.prepareStatement(sql);
ps.setString(1, tecnico.getNome());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("id: " + rs.getString("id"));
System.out.println("login: " + rs.getString("login"));
System.out.println("senha: " + rs.getString("senha"));
System.out.println("tipo_usuario: " + rs.getString("tipo_usuario"));
}