[Ajuda]Criação de conexão no DAO

1 resposta
E

stou participando de um projeto interno e sou novo em java, foi-me passada a opção de criar o DAO. Sobre DAO eu sei o que aprendi na caelum(o que é um otimo conteudo) mas o que precisa aqui é diferente.

ME pasaram um javadoc modelo - BaseOracleDAO - , o que ajuda um pouco. meu chefe so pediu para que eu fizesse igual..
mas, não consigo nem começar...
Alguem pode me mostrar um programa exemplo que usar este tipo de conexão? Diferente do que aprendi com TomCat.

Obrigado.

openConnection
public java.sql.Connection openConnection(java.lang.String jndi)
                                   throws java.lang.ExceptionMetodo responsavel pela abertura de conexao com o banco de dados. 

Returns:
Connection 
Throws: 
java.sql.SQLException 
java.lang.Exception

--------------------------------------------------------------------------------
commit
public void commit(java.sql.Connection conn)Efetiva a execucao das operacoes na conexao. 

Parameters:
conn - conexao de referencia.

--------------------------------------------------------------------------------
rollback
public void rollback(java.sql.Connection conn)Aborta a execucao das operacoes na conexao. 

Parameters:
conn - conexao de referencia.

--------------------------------------------------------------------------------
close
public void close(java.sql.Connection conn,
                  java.sql.PreparedStatement ps,
                  java.sql.ResultSet rs)Fecha a conexao e objetos atrelados a esta. 

Parameters:
conn - objeto de conexao.
ps - objeto de execucao SQL.
rs - objeto de resultado de execucao SQL.

--------------------------------------------------------------------------------
close
public void close(java.sql.Connection conn,
                  java.sql.CallableStatement cs)Fecha a conexao e objetos atrelados a esta. 

Parameters:
conn - objeto de conexao.
cs - objeto de execucao SQL

1 Resposta

magnocosta

Boa tarde Erick,

Pelo que eu entendi essa classe é uma abstração da sua camada de persistencia … bom mais o que é isso??? (Vamos lá)
E muito comun hoje a utilização do JNDI (Java Naming Directory Invocation), esse mecanismo é utilizado para invocar uma classe que se econtra registrada me outro local (FORA DO SEU PROJETO).
Para isto basta criar uma classe publicar em um servidor de aplicação web e registra-la no servidor dando um nome para ela tipo “testeDao”,
fazendo isso é possivel atravez de outra aplicação instanciar essa classe e utilizar os recursos dela em qualquer projeto.
O conceito é esse, provavelmente o servidor de aplicação onde voce trabalha tem essas classes registradas exemplo:

Classe - JNDI - Descrição
ConexaoOracle - oracle - Realiza a conexao com o bd Oracle
ConexaoMysql - mysql - Realiza a conexao com o bd Mysql
SQLServer - sqlserver - Realiza a conexao com o bd SQLServer

Como descrito acima cada classe tem seu nome (JNDI) que esta referenciado no servidor, voce precisa descobrir esses nomes para trabalhar.
Seguindo o meu EXEMPLO acima ficaria assim:

ORACLE

BaseOracleDao oracle = new BaseOracleDao();
Connection conexao = oracle.openConnection("oracle");
//Executa os SQLS
conexao.createPrepareStatment("INSERT INTO (nome, senha) VALUES ('11', '22')");
conexao.execute();
oracle.commit(conexao);
oracle.close(conexao);

MYSQL

BaseOracleDao oracle = new BaseOracleDao();
Connection conexao = oracle.openConnection("mysql");
//Executa os SQLS
conexao.createPrepareStatment("INSERT INTO (nome, senha) VALUES ('11', '22')");
conexao.execute();
oracle.commit(conexao);
oracle.close(conexao);

SQLServer

BaseOracleDao oracle = new BaseOracleDao();
Connection conexao = oracle.openConnection("sqlserver");
//Executa os SQLS
conexao.createPrepareStatment("INSERT INTO (nome, senha) VALUES ('11', '22')");
conexao.execute();
oracle.commit(conexao);
oracle.close(conexao);

Voltando a primeira frase do POST, a camada de conexao foi abstraída !

Ve se te ajudei ai cara !!!

FUUUI !!

Criado 10 de agosto de 2010
Ultima resposta 10 de ago. de 2010
Respostas 1
Participantes 2