Projeto Framework

3 respostas
P

Estou aqui para falar que estou desenvolvendo um projeto de framework em java na minha pos graduação. Gostaria de pedir aos usuários idéias que eu poderia adicionar nesse framework. Bem vou falar como esse framework funciona. Eu me basei no Spring, mas precisamente a parte que ele trabalha com Hibernate para projetar não copiei o código do spring fiz minhas próprias implementações de código e classes. Nesse projeto quero facilitar ainda mais o uso do hibernate em aplicações desktop, e na qual estou criando alguns componentes swing, tipo o DBNavigator do Delphi mas com menos recursos, tipo por exemplo so tem os botões inserir, excluiir, editar, atualizar e cancelar, um combox customizado entre outros componentes que ainda estão no projeto mais ainda não foram implementados. Criei algumas bibliotecas utilitarias para trabalhar com reflection e para retornar algums informações sobre o sistema. Bem abaixo vai um código de exemplo de como faz para usar esse framework, quem tiver idéias para acrescentar me Agradeço

*Aqui estou configurando o framework, estou dizendo para ele 
 iniciar o Hibernate usando as classes persistente configuradas atraáves 
 de arquivo XML. 
 Pode-se também usar as configurações atráves de annotations usando a 
 classe ConfigureHibernateAnnotations() no lugar de ConfigureHibernateXML*/ 
 ConfigurationApplicationContext ctx = new ConfigurantionHibernateContext( new ConfigureHibernateXML() ); 
 ctx.initConfiguration(); //Aqui inicio a configuração 
 
 
 /*Criando instâncias das classes DAO.*/
 DAOFactoryContext daoFactory = new DAOFactory(); 
 TesteDAO daoTeste = daoFactory.getDao(TesteDAO.class)//criando instância do DAO 
 
 //Persistindo os dados 
 Teste teste = new Teste(); 
 teste.setNome("Paulo"); 
 daoTeste.salvar(teste); 
 
 /*Pode se também usar o componente JNavigator similiar com 
 DBNavigator do Delphi passando a instância do DAO para o método 
 setDao() do componente*/
 JNabegador navegador = new JNavegador(); 
 navegador.setDao(testeDAO);

Bem pessoal isso so e uma parte do framework quem poder dar ideias para acrescentar nesse framework eu agradeço

Abraços a Todos

3 Respostas

S

Se tens um ApplicationConfigurationContext (ApplicationContext seria suficiente?) para Hiberante porque não um para JPA ? Afinal JPA é mais genérico que hibernate, podendo usar o hibernate por trás dos panos da mesma forma, mas menos explicita.
O DAOFactory é legal , mas tlv a interface deve-se ser em ingles (save em vez de salvar). Como configurar o DAO ? Tipo, se quiser um cache entre o banco e o swing ? Tem um DAO genérico ou Ou tenho que escrever um DAO para cada classe de negocio ? (tipo PessoaDAO,ProdutoDAO, PedidoDAO, etc…)
JNavigator parece só funcionar em banco local ou funcionaria se o DAO fosse buscar os dados num servidor remoto ? Funcionaria com uma versão cached do DAO ? Não conheco o DBNavigator do Delphi, por isso pegunto: tem como filtrar a tabela ? Como se editam os dados ? o JNavigator emite eventos que se poderiam tratar normalmente como se fosse outro componente swing : por exemplo RowSelectedEvent ?

M

Me responde uma coisa ?
Nesse seu projetos de framework, vc está preocupado somente com o acesso a base de dados, ou esse é somente um começo ?
Abraços.

P
Se tens um ApplicationConfigurationContext (ApplicationContext seria suficiente?) para Hiberante porque não um para JPA ? Afinal JPA é mais genérico que hibernate, podendo usar o hibernate por trás dos panos da mesma forma, mas menos explicita. O DAOFactory é legal , mas tlv a interface deve-se ser em ingles (save em vez de salvar). Como configurar o DAO ? Tipo, se quiser um cache entre o banco e o swing ? Tem um DAO genérico ou Ou tenho que escrever um DAO para cada classe de negocio ? (tipo PessoaDAO,ProdutoDAO, PedidoDAO, etc..) JNavigator parece só funcionar em banco local ou funcionaria se o DAO fosse buscar os dados num servidor remoto ? Funcionaria com uma versão cached do DAO ? Não conheco o DBNavigator do Delphi, por isso pegunto: tem como filtrar a tabela ? Como se editam os dados ? o JNavigator emite eventos que se poderiam tratar normalmente como se fosse outro componente swing : por exemplo RowSelectedEvent ?

Se tens um ApplicationConfigurationContext (ApplicationContext seria suficiente?) para Hiberante porque não um para JPA ? Afinal JPA é mais genérico que hibernate, podendo usar o hibernate por trás dos panos da mesma forma, mas menos explicita.

A classe ApplicationConfigurationContext e apenas para iniciar a configuração do framework com o hibernate. JPA ainda não pensamos em usar ele ainda, mas futuramente podemos adicionar ele. Mas de inicio pretendemos trabalhar so com Hibernate

O DAOFactory é legal , mas tlv a interface deve-se ser em ingles (save em vez de salvar). Como configurar o DAO ? Tipo, se quiser um cache entre o banco e o swing ? Tem um DAO genérico ou Ou tenho que escrever um DAO para cada classe de negocio ? (tipo PessoaDAO,ProdutoDAO, PedidoDAO, etc..)
O método de salvar ja foi trocado para save, isso foi uma falha nossa hehe. Existe um DAO generico chamado HibernateGenericDAO onde as classes DAO podem extender essa classe, e também podem criar seus proprio DAO onde por exemplo a classe mas deve se implementar a interface DAO e usar a classe HibernateCommand delegando os comandos ao DAO por exemplo:

//Extendendo a classe HibernateGenericDAO:
class ProdutoDAO<Produdo extends HibernateGenericDAO<Produto>{

       public ProdudoDAO(){  super(); }

}

//ou implementado a interface DAO e delegando HibernateCommand

class ProdutoDAO<Produto> implements DAO<Produto>{
        
             HibernateCommand<Produto> command;
             public ProdutoDAO(){
                 command = new HibernateCommand<Produto>();
              }

              public void save(Produto obj){
                    command.save(obj):
              }

             /*
                 Outros métodos implementados
            */

}

JNavigator parece só funcionar em banco local ou funcionaria se o DAO fosse buscar os dados num servidor remoto ?
O JNavegador e so para inteface swing. A implemtação para buscar dados remotamente estamos implemetando.

Funcionaria com uma versão cached do DAO ?
Ele não funciona como cached do DAO.

Como se editam os dados ? o JNavigator emite eventos que se poderiam tratar normalmente como se fosse outro componente swing : por exemplo RowSelectedEvent ?
Os dados são editados nos proprio objetos persistentes.
O JNavegador possui eventos sim, como por exemplo afterSave, beforeSave etc....

Não conheco o DBNavigator do Delphi, por isso pegunto: tem como filtrar a tabela ?
A Filtração dos dados e feito nos próprios DAOs

Criado 27 de março de 2007
Ultima resposta 28 de mar. de 2007
Respostas 3
Participantes 3