Buscas informações em duas tabelas no banco Firebird

Boa tarde, preciso de uma orientação,
Tenho um banco de dados firebird com duas tabelas produto, produto2 preciso relacionar as duas para mostrar as informações em um JTxtArea.

Fiz um metodo listarProdutos e um sql relacionando as duas tabelas, mas gera um erro ao executar, mas se executo o sql na base este funciona normalmente.
Segue o metodo.
`

public List listaProdutos() throws ClassNotFoundException, SQLException{

    Connection con = ConectaBD.getConnection();
    PreparedStatement stmt = null;
    ResultSet rs = null;
    String sql = "SELECT p.pr_codigo, p2.pr_prcodigo, p2.pr_origem, p.pr_variavel1, p.pr_descricao FROM"
               + "produto p INNER JOIN produto2 p2 ON p.pr_codigo = p2.pr_prcodigo";
    //String sql = "Select pr_codigo, pr_descricao, pr_variavel1 from produto";
    //String sql = "SELECT pr_prcodigo, pr_origem from produto2";
    List<Firebird> firebird = new ArrayList<>();
    
    try {
        stmt = con.prepareStatement(sql);
        rs = stmt.executeQuery();
        
        while(rs.next()){
            Firebird fire = new Firebird();
            fire.setPrcod(rs.getInt("pr_codigo"));
            fire.setPr2cod(rs.getInt("pr_prcodigo"));
            fire.setPr2ori(rs.getString("pr_origem"));
            fire.setPrvar(rs.getString("pr_variavel1"));
            fire.setPrdes(rs.getString("pr_descricao"));

            firebird.add(fire);
        }
    } catch (SQLException ex) {
        System.out.println("Erro de Conexão no banco  " + ex);;
    }finally{
        ConectaBD.closeConnection(con, stmt, rs);
    }
    return firebird;
    
}`

Aqui esta a exceção apresentada:
java.sql.SQLSyntaxErrorException: Dynamic SQL Error; SQL error code = -104; Token unknown - line 1, column 10; FROMproduto [SQLState:42000, ISC error code:335544634]

Está aqui explicitamente qual é o teu problema…

1 curtida

Obrigado eu passei um tempão, para descobrir que a concatenação estava dando este erro por conta do espaço. Obrigado pela atenção.

Temos de bater com a cabeça para aprender :slight_smile: