Mini curso JBC

513 visualizações

Publicada em

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

Publicada em: Tecnologia, Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×