Mini curso JBC

479 visualizações

Publicada em

Seminário Científico Organizações Tecnologia e Relações Internacionais

Publicada em: Tecnologia, Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
479
No SlideShare
0
A partir de incorporações
0
Número de incorporações
273
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mini curso JBC

  1. 1. Java Business ControllerFramework de controle da camada denegócio para projetos em JavaRodrigo Leandro Marconato
  2. 2. Apresentação• Rodrigo Leandro Marconato;• Analista de sistemas na empresa B3 Informática desde 2009• PTI – Parque Tecnológico de Itaipu• Bacharel em Sistemas de Informação pela UDC• Pós-Graduado em Administração e desenvolvimento de Banco de dadospela UTFPR – Campus de Medianeira• Sete anos de experiência em desenvolvimento de sistemas Java, utilizandoplataformas Desktop, Web e Mobile.• Sólida vivência em gerenciamento e coordenação de projetos.• Blog JBC: http://jbc-framework.blogspot.com.br/• Auxiliado pelo Analista de sistemas Alison Diego Harka Machado
  3. 3. Cronograma• Introdução• O que é JBC?• Como usar JBC• Recursos utilizados• Requisitos para implementação• O que o JBC faz?• JavaDoc• JBC na prática• Reimplementação de métodos da classe br.com.jbc.Controller• Suporte para leitura de arquivo de propriedade hibernate.• Case de sucessohttp://jbc-framework.blogspot.com.br/
  4. 4. Introdução• Sistemas N-Camadas - No princípio do desenvolvimento de sistemas quando osaplicativos eram executados em computadores de grande porte, era comumencontrar todas as funcionalidades em uma única grande camado, a manutençãodeste código era muito complexa. Este código era chamda de “Código Monolítico”.http://jbc-framework.blogspot.com.br/
  5. 5. Introdução• Com o objetivo de poder utilizar vários aplicativos e uma única base de dados, aarquitetura evoluiu para uma arquitetura de duas camadas, também conhecidacomo cliente/servidor, onde passou a existir uma camada única para armazenarregra de negócio para acesso a base de dados. Esta camada podia ser utilizada pormuitos aplicativos e facilmente trocada em caso de troca de banco de dados.http://jbc-framework.blogspot.com.br/
  6. 6. Introdução• Com o pasar do tempo a arquitetura de duas camadas começou a ser insuficiente,pois a lógica de negócio e de apresentação estavam reunidas em uma únicacamada. Em seguida surge a Internet, neste cenário a lógica de negócio eraexecutada no cliente, sendo inviável o tempo de espera para atualizar o aplicativo.http://jbc-framework.blogspot.com.br/
  7. 7. Introdução• A separação das três camadas torna o aplicativo mais flexível, pois as camadaspodem ser alteradas independentemente, de modo que as outras camadas nãosofram nenhuma alteração.http://jbc-framework.blogspot.com.br/
  8. 8. O que é o JBC?• É um framework de controle da camada de negócio para projetos desenvolvidosem Java.http://jbc-framework.blogspot.com.br/
  9. 9. O que é o JBC?• Seu principal objetivo é otimizar o tempo de desenvolvimento que é usado paraprojetar códigos repetitivos, que por sua vez são muito frequentes quando se tratade controle de transação e persistência em banco de dados.http://jbc-framework.blogspot.com.br/Camada de visualizaçãoController ou Transaction – Mantem controle detransaçãoFacade – Disponibiliza uma interface simplificadaDao – Data Access ObjectBanco de dados
  10. 10. Recursos utilizados no JBC• Java – Uma das mais populares linguagens de programação da atualidade• Orientação a objeto;• Distribuída;• Polimorfismo;• Entre outros...• Hibernate – Framework de persistência Java• Mapeamento das classes no banco de dados relacional;• Annotations – Permite mapeamento ORM (Object-relational-mapping) sem utilizar XML;• Persistência de forma transparente;• Entre outros...http://jbc-framework.blogspot.com.br/
  11. 11. Comparação• Modelo tradicional• Modelo JBChttp://jbc-framework.blogspot.com.br/
  12. 12. Aplicação do modelo tradicional• Beanhttp://jbc-framework.blogspot.com.br/
  13. 13. Aplicação do modelo tradicional• DAOhttp://jbc-framework.blogspot.com.br/
  14. 14. Aplicação do modelo tradicional• Facadehttp://jbc-framework.blogspot.com.br/
  15. 15. Aplicação do modelo tradicional• Controllerhttp://jbc-framework.blogspot.com.br/
  16. 16. Aplicação do modelo tradicional• Viewhttp://jbc-framework.blogspot.com.br/
  17. 17. Aplicação do modeloJBC• VIEWhttp://jbc-framework.blogspot.com.br/
  18. 18. Conclusão• Para desenvolver um sistema completo, necessitamos de uma infinidade deoperações de transação e consulta na camada de negócio, então imagine ter quedesenvolver todas estas operações para cada entidade do seu negócio.• A ideia do JBC foi generalizar todas essas operações através de um Framework quedesse suporte para todo e qualquer tipo de negócio, indiferente defuncionalidades e regras, deixando com que o desenvolvedor dedique a maiorparte de seu tempo com o desenvolvimento da camada de visualização,implementação que requer mais atenção e que tem grande variedade entre umsistema e outro.• Download dos modelos tradicional e JBC podem ser baixados no repositório githubhttps://github.com/marconato/jbc-framework/tree/master/sampleou ainda através do blog JBChttp://jbc-framework.blogspot.com.br/p/como-usar.htmlhttp://jbc-framework.blogspot.com.br/
  19. 19. Recursos utilizados• Java• Generics – A programação genérica é uma característica muito importante que foiadicionada no Java 5.http://jbc-framework.blogspot.com.br/
  20. 20. Recursos utilizados• Java• Reflection – Presente no Java desde a versão 1.1, permite um programa Java olhar eexaminar suas propriedades e estrutura. Com isso, você pode, por exemplo obter onome de todos os membros de uma classe, como atributos e métodos, bem comoexecutar um método:http://jbc-framework.blogspot.com.br/
  21. 21. Recursos utilizados• Hibernate• Conexão com o banco de dados – Credenciais são informadas através de um arquivo deconfiguração:• hibernate.dialect = org.hibernate.dialect.MySQLDialect• hibernate.connection.driver_class = com.mysql.jdbc.Driver• hibernate.connection.url = jdbc:mysql://localhost:3306/nomedabasededados• hibernate.connection.username = root• hibernate.connection. password = password• Annotations – Permite mapeamento ORM sem utilizar XML;• HQL – Hibernate Query Language – Similar a SQL, porém é orientada a objetos, suportandorecursos como:• Herança• Polimorfismo• Associações• Entre outros...http://jbc-framework.blogspot.com.br/
  22. 22. Recursos utilizados• Hibernate• Criteria - O Criteria Query API permite construir expressão query em Java, possibilitando, assim, achecagem em tempo de compilação. O Criteria API permite, de forma programática, construirobjetos a partir da interface org.hibernate.Criteria• Para persistir um objeto da classe, usamos o método createCriteria() da interface Session, queretorna um objeto Criteria, que permite ter acesso a instância de persistência da classe.• Utiliza as APIs org.hibernate.Criteria e org.hibernate.criterion.Restrinctionshttp://jbc-framework.blogspot.com.br/
  23. 23. Recursos utilizados• Hibernate• Restriction – No Criteria através da desta API, temos métodos que nos ajudam na implementaçãodas operações simples:• gt() = maior que• ge() = maior ou igual que• lt() = menor que• le() = menor ou igual quehttp://jbc-framework.blogspot.com.br/
  24. 24. Requisitos para implementação• Utilizar a versão 3 do Hibernate em sua aplicação, pois esta é a versãoutilizada no JBC;• O arquivo de configuração Hiberante (hibernate.cfg.xml) deve ser colocado naraiz do projeto;• A chave primária de todas as entidades deve se chamar “id”, sendoindiferente o tipo de dados. Esta regra é necessária pois o JBC trabalha comreflection, e em determinados pontos, como para adicionar Restrições noCriteria, o JBC se baseia que a chave primária de todas as entidades sempreserá “id”.• Os atributos que representam relacionamentos, como Many-To-One e One-To-Many, tem que ter o mesmo nome da classe que implementa. Porexemplo:• Para a declaração do atributo do tipo Cidade dentro de Pessoa, deve ser declarado deuma das seguintes maneiras:– Cidade cidade;– CidadeVO cidadeVO;– CidadeEntity cidadeEntity;• O importante é que sempre o nome do atributo seja igual ao nome da classe, e SEMPRECOM A PRIMEIRA LETRA EM MINÚSCULA.• Reforçando que isto é necessário que o JBC saiba lidar com as Restrições adicionadasao Criteria.http://jbc-framework.blogspot.com.br/
  25. 25. O que o JBC faz?• Controle de transação;– Commit;– Rollback;• Consultas HQL;• Busca paginada;http://jbc-framework.blogspot.com.br/
  26. 26. Consulta HQL• Permite consultas HQL através da API br.com.jbc.controller.Controllerhttp://jbc-framework.blogspot.com.br/http://jbc-framework.blogspot.com.br/2012/10/consulta-hql.html
  27. 27. Busca paginada• A classe br.com.jbc.controller.Controller tem um método de busca paginada com aseguinte assinatura:– filter: Objeto Bean/VO contendo os filtros de consulta populados em seus atributos. Este atributo égenérico, e será definido na instância da classe br.com.jbc.controller.Controller– firstResult: Número da página que a consulta irá mostrar os resultados;– maxResult: Número de registros por página;– sortField: Nome do atributo da entidade que será ordenado, aqui será passado o nome do atributoem formato String;– orderByType: Tipo de ordenação da Lista, os valores devemser br.com.jbc.controller.Controller.ORDER_ASC ou br.com.jbc.controller.Controller.ORDER_DESC• O método retorna um objeto br.com.jbc.util.SearchPaginate, que contém a lista deregistros paginada e a quantidade de registros total da consultahttp://jbc-framework.blogspot.com.br/
  28. 28. JavaDoc JBC• Documentação da API para consultar as interfaces de acesso do framework– Jbc.orgfree.comhttp://jbc-framework.blogspot.com.br/
  29. 29. JBC na práticahttp://jbc-framework.blogspot.com.br/
  30. 30. JBC na prática• Netbeans IDE• Banco de dados MySQL– Pacote WampServer• http://www.wampserver.com/– Criar a base de dados através do phpMyAdmin• Baixar JBC do repositório:– https://github.com/marconato/jbc-framework/• Adicionar o JBC no Netbeans– Menu: Ferramentas/bibliotecas Ant/• Nova biblioteca• Adicionar .jar no classpath• Adicionar javaDoc na bibliotecahttp://jbc-framework.blogspot.com.br/
  31. 31. JBC na prática• Criar novo projeto Java– Menu: Novo projeto/Java/Aplicativo Java• Incluir bibliotecas– JBC– Hibernate– Persistence– Driver JDBC do MySQL• Criar arquivo Hibernate de configuração– Menu: Novo/Outro/Hibernate/Assistente para configuração de Hibernate– Informar conexão com banco de dados MySql– Adicionar Propriedades variadas:• Hibernate.hbm2ddl.auto = update• Criar o pacote de código fonte– br.com.minicuro.projetoaulahttp://jbc-framework.blogspot.com.br/
  32. 32. JBC na prática• Criar classe Perfil no pacote br.com.minicuro.projetoaulahttp://jbc-framework.blogspot.com.br/
  33. 33. JBC na prática• Realizar o mapeamento hbm na classe Perfilhttp://jbc-framework.blogspot.com.br/
  34. 34. JBC na prática• Adicionar o Mapeamento no arquivo de configuração Hibernatehttp://jbc-framework.blogspot.com.br/
  35. 35. JBC na prática• Criar classe Main• Criar instancia da classe br.com.jbc.controller.Controller• Criar instancia da classe perfil• Invocar método insert da classe controllerhttp://jbc-framework.blogspot.com.br/
  36. 36. Exercício 1• Criar um novo projeto, que será o sistema console;• Importar o projeto de negócio• Implementar as operções na classe Perfil;– Inserir– Listar– Atualizar– Deletarhttp://jbc-framework.blogspot.com.br/
  37. 37. Exercício 2• Implementar a classe Usuário– Usuario.java– Anotações hbm para o relacionamento perfil• @ManyToOne(fetch = FetchType.EAGER)• @JoinColumn(name = "PERFIL_ID", nullable = false)• @Fetch(FetchMode.JOIN)• @Cascade(CascadeType.SAVE_UPDATE)http://jbc-framework.blogspot.com.br/
  38. 38. Reimplementação de métodosda classe br.com.jbc.controller.Controller• Reimplementar o método inserir da classe controller de Usuário– Criptografia de senha• Criar pacote br.com.minicurso.projetoaula.util e copiar classe MD5.java do repositório• Implementar o método de login– Retornar o usuário logado• Visualizar o exemplo de cadastro de venda no blog jbchttp://jbc-framework.blogspot.com.br/
  39. 39. Case de sucesso• Até o momento dois projeto foram concluídos com os benefícios do framework, no qual otimizou oprocesso de regra de negócio das aplicações:• Elton Hadriel Paula: Trabalhei em um projeto web que utilizava o JBC framework, com isso ganhamosagilidade em termo de consultas no banco de dados, não era mais necessário desenvolver toda a estruturade paginação, simplesmente me preocupava com a lógica de negócio da aplicação. Desta forma avisavaao framework as entidades que devem ser consultada no banco de dados, e as consultas eram realizadascom paginação.• Jackeline Puschel: Trabalhei em um projeto Java desktop em que a utilização desta ferramenta foiprimordial para a agilidade e qualidade final do produto. Com a utilização do framework JBC o esforço dehoras gastas na camada de negócios é minimizado, o que possibilita um maior foco no funcionamentogeral de um sistema, por exemplo. Excelente solução, com certeza recomendo!• Alison Diego H. Machado: Excelente framework para desenvolvimento de software de aplicações JAVA.Permite uma maior flexibilização em questões de implementação de consultas básicas ao banco de dados.Torna o processo mais ágil focando mais na parte lógica do sistema. Participei em um projeto paradesktop utilizando o JBC e me permitiu ter uma visão mais ampla no que se diz respeito a camada denegócio.http://jbc-framework.blogspot.com.br/
  40. 40. Obrigado!http://jbc-framework.blogspot.com.br/Rodrigo Leandro Marconato

×