Dúvida na Sintaxe de Query insert SQL [RESOLVIDO]

Pessoal, tenho uma pequena aplicação Java com 5 campos texto e 3 botões: CONSULTAR, INSERIR E EXCLUIR.

Esta aplicação “conversa” com uma pequena tabela de 5 colunas criada no Access. Nome da tabela: Table1 e Nome das colunas: Cod_cli , Nome, Tel, End e Pruduto.

Criei uma simples query, onde através do código do cliente ele retorna o nome. Veja abaixo.

public String ConsultarNome(int cod)
{
query = “select Table1.Nome from Table1 where Cod_cli=”+cod;

return query;
}

Gostaria de saber qual sintaxe SQL devo criar, para que através do Codigo do cliente, ele me retorne os respectivos e correspondentes: Nome, Tel, End e Produto.

Obrigado!!
Cesar Americo

Fiquei confuso tem como explicar melhor ?

Jovem, se sua dúvida for apenas a instrução SQL lá vai:


PreparedStatement stmt = null;
ResultSet rs = null;

StringBuffer sql = new StringBuffer("");
sql.append("SELECT cod_cli, nome, tel, end, produto ");
sql.append("FROM table1  ");
sql.append("WHERE cod_cli = " + variavelID);

try {
   stmt = ConnectionPool.getConnection().prepareStatement(sql.toString());
   rs = stmt.executeQuery();
   while (rs.next()) {
      int i = 1;
      SEUTIPO dto = new SEUTIPO ();
      dto.setCodCliente(rs.getInt(i++));
      dto.setNome(rs.getString(i++));
      dto.setTel(rs.getString(i++));
      dto.setEnd(rs.getString(i++));
      dto.setProduto(rs.getString(i++));
   }
} catch (SQLException e) {
   throw new DAOException(e.getMessage());
} finally {
   ConnectionPool.closeAll(null, stmt, rs);
   rs = null;
   stmt = null;
   sql = null;
}

Creio que n seja somente a instrução Sql n .

Voce quer a implementação inteira???
Desde de o resultset etc etc??

não conheço a sintaxe do acces mas em sql seria:

SELECT nome, tel, end, Produto FROM table1 WHERE cod_cli = ?

usei um bind ali, de uma olhada em PreparedStatement do java, esse ponto de interrogação seria um parametro ai depois vc setaria esse parametro
algo como:

pstm.setInt(1, codAplic);

pstm seria um objeto do tipo PreapredStatement e codAplic a sua varoável ID.

Ok, meu método ficou assim:

public String ConsultarNome(int cod)
{
StringBuffer sql = new StringBuffer("");

sql.append("SELECT cod_cli, nome, tel, end, produto ");
sql.append("FROM table1 ");
sql.append("WHERE cod_cli = " +cod);

//query = “select Table1.Nome from Table1 where Cod_cli=”+cod;

//return query;
}

Sou iniciante ainda, o que eu retorno? Como fazer a Strin query entender o que definiu o sql.append ?

abraços
}

O ResultSet já tenho implementado, na classe principal.

Valeu!!

O código ficou assim, o compilador não ta reconhecendo o que vou destacar em negrito:

if(evento.getSource() == Bconsulta)
{
try{
StringBuffer sql = new StringBuffer("");
sql.append("SELECT cod_cli, nome, tel, end, produto ");
sql.append("FROM table1 ");
sql.append("WHERE cod_cli = " + Integer.parseInt(Tcod.getText()));

                   try{
                          stm = conn.getConn().prepareStatement(sql.toString());    
                          rs = stm.executeQuery();
                          
                          while (rs.next()) {   
                          int i = 1;   
                           
                          Tcod.setText(""+rs.getInt(i++));   
                          Tnome.setText(rs.getString(i++));   
                          Ttel.setText(rs.getString(i++));   
                          Tend.setText(rs.getString(i++));   
                          Tprod.setText(rs.getString(i++));   
                        }
                   
                       }catch (SQLException e) {   
                       throw new [b]DAOException[/b](e.getMessage());   
                       } finally {   
                       conn.[b]closeAll[/b](null, stm, rs);   
                       rs = null;   
                       stm = null;   
                       sql = null;   
                     } 
                   }catch(SQLException e){}

}

Será que falta eu importar algum pacote??

throw new DAOException(e.getMessage()); 

Esta linda ele criou uma propia exceção , Extendendo a propia classe Exeption ou suas sub-Classes .

conn.closeAll(null, stm, rs)[code]
Provavelmente ele sobrescreveu o metodo para fechar todos de uma so vez ,
no casso vc poderia fechar um a um .

Eu simplismente comentei tdo isso e deu certo:

/*throw new DAOException(e.getMessage());
} finally {
conn.closeAll(null, stm, rs);
rs = null;
stm = null;
sql = null; */

Acredito que isso poderá me levar a futuros erros no aplicativo…

Obrigado a todos!!

basta colocar


catch(SQLException e) {
   e.getMessage();
}catch(Exeption e){
   e.getMessage();
}finally {
 rs = null;
 stm = null;
 sql = null;
}

Entendi … Agora deu certo!!

Obrigado

Cesar Americo

Não Esqueça de editar o Título adicionando a tag [RESOLVIDO] no final do Título , Depois tirar suas duvidas.