Java + Oracle + Hibernate

J.O.H

Olá pessoal, tudo certo ?

Nesse POST irei mostrar um pequeno exemplo em java, banco de dados Oracle 11G e Hibernate.

  • Primeiro deve-se ter o Oracle 11G Instalado. Pode ser baixado nesse link.
  • Apos crie um projeto no Netbeans: Arquivo->Novo Proejto->Maven->Aplicaçao Java.

Configure o arquivo pom.xml com essas dependências:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.10.Final</version>
<type>jar</type>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.1.Final</version>
</dependency>

<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>

<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>

Após vamos configurar o hibernate.cfg.xml.

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE hibernate-configuration PUBLIC “-//Hibernate/Hibernate Configuration DTD 3.0//EN” “http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”&gt;
<hibernate-configuration>
<session-factory>
<!– Database Dialect & Driver for Oracle 11G–>
<property name=”dialect”>org.hibernate.dialect.Oracle9Dialect</property>
<property name=”connection.driver_class”>oracle.jdbc.driver.OracleDriver</property>

<!– Database Details–>
<property name=”connection.username”>USER</property>
<property name=”connection.password”>PASS</property>
<property name=”connection.url”>jdbc:oracle:thin:@localhost:1521:xe</property>
<property name=”connection.pool_size”>1</property>
<property name=”hibernate.default_schema”>SCHEMA</property>

<!– Optional –>
<property name=”show_sql”>true</property>
<property name=”hbm2ddl.auto”>create</property>

<mapping class=”br.com.Cliente”/>
</session-factory>
</hibernate-configuration>

Após criaremos o HibernateUtil, que pode ser criado pela IDE do Netbeans.

public class HibernateUtil {

private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration()
.configure()
.buildSessionFactory();
} catch (Throwable ex) {
System.err.println(“Initial SessionFactory creation failed.” + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

Após criaremos um classe Cliente com três propriedades.

@Entity
@Table(name = “CLIENTES”)
public class Cliente {

@Id
@GeneratedValue
private Long id;

@Column(name = “nome”)
private String nome;

@Column(name = “email”)
private String email;

public Cliente() {

}

public Cliente(String nome, String email) {
this.nome = nome;
this.email = email;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

}

Agora na classe principal iremos fazer de forma bem simples as opções de CRUD.

public class Main {

public static void main(String[] args) {

// Read
System.out.println(“******* READ *******”);
List totClientes = list();
System.out.println(“Total Clientes: ” + totClientes.size());

// Write
System.out.println(“******* WRITE *******”);
Cliente empl = new Cliente(“Oneide”, “oneide@oneide”);
empl = save(empl);
empl = read(empl.getId());
System.out.printf(“%d %s %s \n”, empl.getId(), empl.getNome(), empl.getEmail());

// Update
System.out.println(“******* UPDATE *******”);
Cliente empl2 = read(1l);
System.out.println(“Nome antes de Atualizar Update:” + empl2.getNome());
empl2.setNome(“OneideLuiz”);
update(empl2);

empl2 = read(1l);
System.out.println(“Nome depois de Atualizar:” + empl2.getNome());

// Delete
System.out.println(“******* DELETE *******”);
delete(empl);
Cliente empl3 = read(empl.getId());
System.out.println(“Object:” + empl3);
}

private static List list() {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();

List clientes = session.createQuery(“from Cliente”).list();
session.close();

return clientes;
}

private static Cliente read(Long id) {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();

Cliente cliente = (Cliente) session.get(Cliente.class, id);
session.close();
return cliente;
}

private static Cliente save(Cliente cliente) {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();

Long id = (Long) session.save(cliente);
cliente.setId(id);

session.getTransaction().commit();
session.close();

return cliente;
}

private static Cliente update(Cliente cliente) {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();

session.merge(cliente);

session.getTransaction().commit();
session.close();

return cliente;
}

private static void delete(Cliente cliente) {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();

session.delete(cliente);

session.getTransaction().commit();
session.close();
}

}

Agora é só executar e acompanhar na saída no Netbeans.

Esse projeto pode ser baixado no Github -> Download.

 

Espero que tenham gostado.

Até a próxima. 😀

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s