MySql : erro no executeQuery

Olá a todos, estou tentando fazer um select mas está retornando o erro:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select ‘TbCompra_idTbCompra’ from TbInfoCompra where ‘dataCompra’=‘260313’ and ‘’ at line 1

Bom… o código é esse:


       String sqlSelectInfoCompra = "use sistema_vendas;select 'TbCompra_idTbCompra' from TbInfoCompra where 'dataCompra'="
                              + " ' " +info.getDataCompra() + " ' " +" and 'TbItem_idTbItem'=" +item.getIdItem()+
                                      " and 'TbCompra_idTbCompra'=" + info2.getIdTbCompra() + ";" ;
                             System.out.println(sqlSelectInfoCompra);
                           
                     
                            java.sql.Statement stmSelectInfoCompra = conn.createStatement();                
                          
                            ResultSet rsSelectInfoCompra = stmSelectInfoCompra.executeQuery(sqlSelectInfoCompra);                                                      
                            
                 
                            info.setIdTbCompra(rsSelectInfoCompra.getInt(1));

Eu dei um print na string que está sendo passada para executeQuery, e a testei na linha de comando e no workbench e funcionou sem problema,
ai fiquei perdido, como estou começando agora com mysql e jdbc, resolvi pedir ajuda qui no fórum, se alguém puder ajudar ficarei muito grato.
Estou usando MySQL 5 e linux(Ubuntu).
Desde já obrigado a todos.

O metodo executeQuery foi feito para executar somente uma query sem “;”, no caso voce esta usando 2 queries, “use sistema_vendas” consta como uma query separada, por isso tente remover o “use sistema_vendas;” e trocar o nome da tabela de “TbInfoCompra” por “sistema_vendas.TbInfoCompra”

Tambem remova as aspas do nome da colunas ou use crase “`” no lugar delas.

String sqlSelectInfoCompra = "select TbCompra_idTbCompra from sistema_vendas.TbInfoCompra where dataCompra=" + " ' " +info.getDataCompra() + " ' " +" and TbItem_idTbItem=" +item.getIdItem()+ " and TbCompra_idTbCompra=" + info2.getIdTbCompra() ;

Use PreparedStatement para eliminar essa concatenação toda no seu SQL.

Da forma que você deixou, seu código é dependente de banco e está sujeito a ataques de SQL Injection.

Valeu pelas dicas galera, funcionou e consegui resolver o problema, estou começando agora com o jdbc e ainda tenho de estudar muito!