Usando SQLJ ao invés de JDBC

:twisted:
E ai pessoal, meu primeiro post. A primeira vez nunca esquecemos.

JDBC é sem dúvida uma ótima sacada de Java, mas existe uma ferramenta chamada SQLJ, criada pela Oracle, para facilitar o uso de JDBC, ou melhor, acesso ao banco.

SQJL é uma casca sobre o JDBC, que te permite muito mais facilmente escrever código de acesso ao banco.

Segue exemplo de código em SQLJ:

[code]
//no arquivo Pessoa.sqlj

import java.sql.;
import sqlj.runtime.ref.
;
import sqlj.runtime.ConnectionContext;

public class Pessoa {

private String nome;
private Integer idade;
private Integer id;

private TesteSQLJContext ctx;

public void select() {
#sql [ctx] {
SELECT ID, NOME, IDADE
INTO :id, :nome, :idade
FROM PESSOA
WHERE ID = :id
};
}

public void insert() {
#sql [ctx] {
INSERT INTO PESSOA (ID, NOME, IDADE)
VALUES(:id, :nome, :idade)
};
}

public void setConnection( Connection conn ) throws SQLException {
ctx = new TesteSQLJContext( conn );
}

public void releaseConnection() {
try { if(ctx!=null) ctx.close(ConnectionContext.KEEP_CONNECTION); }
catch(Throwable e) {}
}
}

//no arquivo TesteSQLJContext.sqlj

import sqlj.runtime.ref.;
import java.sql.
;
#sql public context TesteSQLJContext;[/code]

Para tanto você precisa da API do SQLJ da Oracle, encontrada facilmente na TECHNET da Oracle. Agora, não me perguntem se é grátis.

Se quiserem posso postar um Artigo só sobre isso.

abraços

Duvida basica: isso funciona com qualquer database? :shock:

Funciona sim. Onde trabalho já usamos com Oracle 7, 8.1.5, 8.1.7, 8i e 9i, MS-SQL Server e MySQL.

Só tome cuidado pra não usar features específicas de um banco-de-dados.

Hoje um cara da Oracle me contou que a oracle esta incentivando você escrever as stored procedures em SQLJ e java, ao invés de PLSQL, pode uma coisa dessas?

O SAP também, ta saindo de ABAP para java!!!

java rulez!

hhhmm… bom saber, tava pensando em adquirir um livro de plsql por esses dias, mas com base nisso vou ver se acho algo de sqlj e o plsql fica nos help online mesmo 8)

Pelo que pesquisei na Oracle eles continuarão a desenvolver tanto o PLSQL quanto o suporte a Java diretamtne no database.

há umas três semanas a Oracle promoveu o Oracle Java Day. e ao que tudo indica Java & Oracle é realmente pra valer ! :smiley:

Aproveitando… o que me dizem a respeito do Oracle 9iAS ? :wink:

Eu ainda acho que vale mto a pena saber PLSQL. Eu uso isso… pra um cliente nosso, fazendo mto da lógica no oracle em PLSQL… qndo muda alguma coisa, é só mudar a procedure ou function… e o fonte java nem se move… claro que ha limites de alteracoes que nao impactariam no programa java, mas de qq forma escrever um codigo PL no SQLJ fica carregado demais…

a gente apenas chama a proc pelo SQLJ

Olá.

Leonardo,

Sobre o Ora9ias, vou contar uma pequena história:
Usamos aqui na empresa. No nosso caso, o sistema é todo desenvolvido em forms, por uma equipe formada por um revendedor de oracle.
Um certo dia eles precisaram colocar parte do sistema na web. Sem sombra de dúvida o revendedor atolou o IAS neles(U$$ 10.000,00).
Foi ai q eu entrei na história, pra desenvolver o tal sist. pra web.
Desenvolvi tudo em ciam de Tomcat e na hora de portar pro IAS deu um monte de problemas.
Primeiro, não havia santo que alterasse o timeout do servidor. Depois de muitos chamados na oracle, e centenas de alterações em arquivos de configuração. O problema foi resolvido com o da maneira Microsoft (apaga e instala denovo). Milagrosamente funcionou.
Outros problemas como este surgiram mas, eu teria que escrever um livro (talvez o título fosse “Eu odeia o IAS”).
O atual problema é que não é possível atulizar a versão do servlets.jar. Não adianta trocar o pacote. A desculpa da oracle é que o IAS é uma versão fechada, e se eu quiser alterar qualquer coisa nele, preciso comprar a nova release. Aliás eles dão um suporte horrível para o IAS (o suporte para o Banco é muito bom).
Fico me perguntando como devo pagar pra atualizar uma API que é GRÀTIS!!!

Finalizando, se vc não precisa usar coisas que só rodam em IAS (imagino isto. De repente até rodem em outra ferramenta e eu não to sabendo) como forms server, pl/sql server side e outras cacas destas, não joge U$$10.000,00 fora.
No final da história quando mostrei que dava pra usar o Tomcat (free) ao invés do IAS (10.000 mangos) pro diretor da empresa, que pagou por ele, o cara queria enfiar a cabeça dentro da lata de lixo.

Puxa vida, qual a vantagem em gastar 10 pilas, sabendo que existe algo gratuito.

Para alguns, software livre e gratuito != menos caro. E para alguns casos eles têm razão. Alguns softwares pagos não têm um concorrente open source com o nível de suporte que se faz necessário. Na maioria das vezes, tudo se resume a: se tudo der errado, gostaria de ter a quem culpar :smiley:

Daniel Destro wrote:[quote] JDBC é sem dúvida uma ótima sacada de Java, mas existe uma ferramenta chamada SQLJ, criada pela Oracle, para facilitar o uso de JDBC, ou melhor, acesso ao banco. [/quote] Como em toda ferramenta ou projeto da Oracle sempre existe uma IBM na sombra e, para mostrar que não estou errado.:


http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0010333.htm
http://www.devmedia.com.br/visualizacomponente.aspx?comp=1344&site=6
http://www.dsc.ufcg.edu.br/~baptista/cursos/BDadosI/SQLJ.ppt

Mais, será que o iBATIS não seria a solução. :?