BC4J - jsp acessando banco de dados

Pessoal, pra quem usa JDeveloper e BC4J.

A tag <jbo: DataSource, por exemplo, faz acesso direto ao banco ou é impressão minha? Ou seja, a camada de visão está acessando o banco? O que vcs acham disso?

Obrigado

Usar BC4J já é uma péssima escolha arquitetural então e esse é apenas um pequeno detalhe no meio de todos os problemas deste framework.

Quando tive que usar BC4J, não usávamos essa tag, mas de qualquer modo, o JSTL tem as tag’s de acesso a dados também.
Ao meu ver, na maioria dos casos esse tipo de tag deve ser evitado assim como o BC4J e JDeveloper :evil: , mas deve haver algum cenário onde essas tag’s tem sua utilidade.

Depende do Sistema.

Pra um CRUD de 4 tabelas, não escalável, até agora nao vi nada mais produtivo do que ADF + BC4J.

Exemplo:

<jbo:DataSource id="BlaId" appid="BlaModule" viewobject="<BlaView>" whereclause="<<<<sql-where-qualquer>>>>" rangesize="-1" orderbyclause="<<<<sql-order-by-qualquer>>>>"/>

Está colocando regras de where e order by na jsp

Se eu quisesse mudar a visão pra GWT?

O antigo BC4J foi substituído pelo ADF-BC, que é parte do Oracle ADF (Faces, Bindings, Data Control e BC).
É um framework voltado para programadores de linguagens 4GL (VB, Delphi, Oracle Forms).
Ele tira do programador a flexibilidade, dando maior agilidade na criação de sistemas (engessados).

Eu, particularmente, não gosto da solução, mas mostra-se produtiva nos casos comuns. Embora tenho um custo a se pagar (menor flexibilidade, curva de aprendizagem, etc).

[quote=danieldestro]O antigo BC4J foi substituído pelo ADF-BC, que é parte do Oracle ADF (Faces, Bindings, Data Control e BC).
É um framework voltado para programadores de linguagens 4GL (VB, Delphi, Oracle Forms).
Ele tira do programador a flexibilidade, dando maior agilidade na criação de sistemas (engessados).

Eu, particularmente, não gosto da solução, mas mostra-se produtiva nos casos comuns. Embora tenho um custo a se pagar (menor flexibilidade, curva de aprendizagem, etc).[/quote]

Eu concordo com vc. Tira a flexibilidade mesmo. Sempre disse aqui na empresa que só presta pra CRUD.

Mas nesses casos, pra mim ADF + BC é a melhor escolha.
Com algumas customizações o desenvolvimento vôa.

&lt;sql:query var="books" 
      sql="select * from PUBLIC.books where id = ?" &gt;
      &lt;sql:param value="${bookId}" /&gt;
&lt;/sql:query&gt;

Como eu disse, mesmo usando JSTL você pode ter esse mesmo problema. Ou até pior, poderia usar scriptlet. As tecnologias estão aí, cabe a cada um ter bom senso e escolher a melhor solução.

[quote=chicobento] &lt;sql:query var="books" sql="select * from PUBLIC.books where id = ?" &gt; &lt;sql:param value="${bookId}" /&gt; &lt;/sql:query&gt;

Como eu disse, mesmo usando JSTL você pode ter esse mesmo problema. Ou até pior, poderia usar scriptlet. As tecnologias estão aí, cabe a cada um ter bom senso e escolher a melhor solução.[/quote]

De longe isso não é a melhor solução… talvez pra projetos super pequenos. Bom, sei lá…

Pode ser uma solução mas não é a melhor. Se é pela integração com o JDeveloper tem um quilo de plataformas de desenvolvimento que se integram com Eclipse, Netbeans e etc. Eu já tive que “ter acesso aos fontes” do BC4J para corrigir bugs e não confio neste framework para nada depois do que vi lá.