sábado, 8 de junho de 2013

Conteúdo mini-curso Seminário Científico

Apresentação do conteúdo do mini-curso proferido nos dias 05-06/06 no Seminário Científico das faculdades Anglo Americano e UDC.
Conforme combinado, os interessado em dar continuidade nos exercícios, estarei dispostos a auxiliar nas dúvidas.
Entrem em contato através do e-mail marconato10@gmail.com


quinta-feira, 23 de maio de 2013

Mini curso JBC



Mini curso JBC será ministrado no IV Seminário Científico Organizações Tecnologia e Relações Internacionais nos dias 05 e 06/06 de 2013, na Faculdade Anglo Americano

Facebook do evento


quinta-feira, 18 de abril de 2013

Case de sucesso

Projetos desenvolvidos em Java na B3 Informática estão utilizando o framework JBC.
Até o momento dois projeto foram concluídos com os benefícios do framework, no qual otimizou o processo de regra de negócio das aplicações

quinta-feira, 14 de fevereiro de 2013

Suporte para leitura de arquivo de propriedade hibernate


Pensando em melhorar a manutenção dos projetos, surgiu a necessidade de  ler um arquivo de propriedade com as credenciais do banco de dado, dispensando a necessidade da recompilação do projeto com essas informações toda vez que o banco de dados ou credenciais foram alteradas.

Ao levantar um projeto que use o framework JBC, o hibernate se conecta ao banco de dados através do arquivo hibernate.cfg.xml  na raíz do projeto. Na versão 1.1, o JBC verifica se existe um arquivo hibernate.properties na raiz do projeto. Este arquivo segue as especificações hibernate, como abaixo as credenciais para conexão  com o MySql:

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://server:port/database
hibernate.connection.username=user
hibernate.connection.password=pass
hibernate.hbm2ddl.auto=update


O arquivo hibernate.cfg.xml na raiz do projeto não é dispensado, pois é neste que o mapeamento das entidades são descritos para o hibernate:

<hibernate-configuration>

  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>    
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    
    <property name="hibernate.connection.url">jdbc:mysql://server:port/database</property>    
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"></property>
    <property name="hibernate.hbm2ddl.auto">update</property>

    <mapping class="br.com.Entidade1"/>
    <mapping class="br.com.Entidade2"/>
    <mapping class="br.com.Entidade3"/>

  </session-factory>
</hibernate-configuration>


Caso o arquivo hibernate.properties for encontrado na raiz do projeto, suas credenciais são carregadas, caso contrário, as credenciais do arquivo hibernate.cfg.xml prevalecem. Com isso aumenta a flexibilidade do projeto, sendo possível alterar o banco de dados e seus credencias a qualquer momento que o cliente necessitar, sem a necessidade de recompilar o projeto, e sem ter conhecimentos de programação.

A alteração equivalente esta implementada na classe br.com.jbc.db.HibernateUtil, como apresentado abaixo:

public class HibernateUtil {

    private static SessionFactory factory;
    
    private static String HIBERNATE_PROPERTIES_FILE_NAME = "hibernate.properties";

    static{
        Properties hibernateProperties = new Properties();
        InputStream in;
        try {
            in = new FileInputStream(HibernateUtil.HIBERNATE_PROPERTIES_FILE_NAME);
            hibernateProperties.load(in);
            in.close();
            
            factory = new AnnotationConfiguration().configure().setProperties(hibernateProperties).buildSessionFactory();
            
        } catch (Exception ex) {

            try {
                factory = new AnnotationConfiguration().configure().buildSessionFactory();
            } catch (Throwable e) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + e);
                throw new ExceptionInInitializerError(ex);
            }
        }
    }

    /**
     * Abre e retorna a Sessão Hibernate
     * @return Session
     */
    public static Session getSession() {
        return factory.openSession();
    }
}

Para baixar o jar da versão 1.1, clique aqui;