Bibliotecas utilizadas:
cglib-nodep-2.1_3.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-logging.jar
dom4j-1.6.1.jar
ejb3-persistence.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
jta.jar
mysql-connector-java-5.0.7-bin.jar
Fontes Ciclo de Vida:
ROOT
- lib
- libs
- src
- Usuario.java
- UsuarioServico.java
- HibernateUtil.java
- hibernate.cfg.xml
HibernateUtil.java
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Criando a SessionFactory apartir no hibernate.cfg.xml
sessionFactory = new AnnotationConfiguration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Não foi possivel criar a SessionFactory." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Usuario.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String login;
private String senha;
private String nome;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
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;
}
@Override
public String toString() {
return "Usuario["+this.getId()+"]: Nome "+this.getNome();
}
}
UsuarioSevico.java
import org.hibernate.Session;
public class UsuarioServico {
private Session session;
public static void main(String[] args) {
UsuarioServico servico = new UsuarioServico();
System.out.println("----------------------------");
System.out.println("Criar um objeto Persistente");
System.out.println("----------------------------");
servico.criar();
System.out.println("----------------------------");
System.out.println("Obter objeto Persistente");
System.out.println("----------------------------");
servico.obter();
System.out.println("----------------------------");
System.out.println("Atualizar objeto persistente");
System.out.println("----------------------------");
servico.atualizar();
System.out.println("----------------------------");
System.out.println("Tornar transisnte um objeto persistente");
System.out.println("----------------------------");
servico.tornarTransiente();
}
private void criar() {
// Objeto transiente
Usuario u = new Usuario();
u.setEmail("email");
u.setLogin("login");
u.setNome("nome");
u.setSenha("senha");
iniciandoSessao();
// Objeto sendo persistido
session.save(u);
// Objeto persistido
session.getTransaction().commit();
// Objeto transiente
}
private void obter() {
iniciandoSessao();
// Objeto transiente
Usuario u = (Usuario) session.load(Usuario.class, 1);
// Objeto persistente
System.out.println("Usuario " + u.toString());
session.getTransaction().commit();
// Objeto transiente
}
private void atualizar() {
iniciandoSessao();
// Objeto transiente
Usuario u = (Usuario) session.get(Usuario.class, 2);
// Objeto persistente
System.out.println("Usuario " + u.toString());
u.setNome("novo nome");
session.getTransaction().commit();
// Objeto transiente
}
private void tornarTransiente() {
iniciandoSessao();
// Objeto transiente
Usuario u = (Usuario) session.get(Usuario.class, 3);
// Objeto persistente
if (u != null) {
System.out.println("Usuario " + u.toString());
session.delete(u);
}
session.getTransaction().commit();
// Objeto transiente
}
private void iniciandoSessao() {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
}
}
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernateCicloDeVida</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="Usuario"/>
</session-factory>
</hibernate-configuration>
Fontes Associações: ROOT - lib - libs - src - hibernate.cfg.xml - entidade - Endereco.java - Usuario.java - Veiculo.java - servico - UsuarioServico.java - VeiculoServico.java - util - HibernateUtil.java hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernateCicloDeVida</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="entidade.Usuario"/>
<mapping class="entidade.Endereco"/>
<mapping class="entidade.Veiculo"/>
</session-factory>
</hibernate-configuration>
Entidades: Usuario.java
package entidade;
import java.util.List;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String login;
private String senha;
private String nome;
private String email;
@OneToMany(mappedBy = "usuario")
@Cascade(CascadeType.ALL)
private Set enderecos;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "aluguel", joinColumns = { @JoinColumn(name = "usuario_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "veiculo_id", referencedColumnName = "id") })
private List veiculos;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
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;
}
@Override
public String toString() {
return "Usuario[" + this.getId() + "]: Nome " + this.getNome();
}
public Set getEnderecos() {
return enderecos;
}
public void setEnderecos(Set enderecos) {
this.enderecos = enderecos;
}
public List getVeiculos() {
return veiculos;
}
public void setVeiculos(List veiculos) {
this.veiculos = veiculos;
}
}
Endereco.java
package entidade;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Endereco {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String rua;
private Integer numero;
private String bairro;
private String cidade;
private String uf;
private String cep;
@ManyToOne()
@JoinColumn(name = "usuario_id", referencedColumnName = "id", insertable = true, updatable = true)
private Usuario usuario;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public Integer getNumero() {
return numero;
}
public void setNumero(Integer numero) {
this.numero = numero;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
Veiculo.java
package entidade;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Veiculo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column()
private String modelo;
@Column()
private String cor;
@Column()
private Integer ano;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "aluguel", joinColumns = { @JoinColumn(name = "veiculo_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "usuario_id", referencedColumnName = "id") })
private List usuarios;
public List getUsuarios() {
return usuarios;
}
public void setUsuarios(List usuarios) {
this.usuarios = usuarios;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public Integer getAno() {
return ano;
}
public void setAno(Integer ano) {
this.ano = ano;
}
}
Servico: UsuarioServico.java
package servico;
import java.util.HashSet;
import org.hibernate.Session;
import util.HibernateUtil;
import entidade.Endereco;
import entidade.Usuario;
public class UsuarioServico {
private Session session;
public static void main(String[] args) {
UsuarioServico servico = new UsuarioServico();
System.out.println("-------------------------------");
System.out.println("Criar um usuario e seu endereco");
System.out.println("-------------------------------");
servico.criar();
}
private void criar() {
Usuario u1 = new Usuario();
u1.setEmail("email");
u1.setLogin("login");
u1.setNome("nome");
u1.setSenha("senha");
u1.setEnderecos(new HashSet());
Endereco e1 = new Endereco();
e1.setBairro("bairro");
e1.setCep("cep");
e1.setCidade("cidade");
e1.setNumero(123);
e1.setRua("rua");
e1.setUf("uf");
e1.setUsuario(u1);
u1.getEnderecos().add(e1);
Usuario u2 = new Usuario();
u2.setEmail("email");
u2.setLogin("login");
u2.setNome("nome");
u2.setSenha("senha");
u2.setEnderecos(new HashSet());
Endereco e2 = new Endereco();
e2.setBairro("bairro");
e2.setCep("cep");
e2.setCidade("cidade");
e2.setNumero(123);
e2.setRua("rua");
e2.setUf("uf");
e2.setUsuario(u2);
u2.getEnderecos().add(e2);
iniciandoSessao();
session.save(u1);
session.save(u2);
session.getTransaction().commit();
}
private void iniciandoSessao() {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
}
}
VeiculoServico.java
package servico;
import org.hibernate.Session;
import util.HibernateUtil;
import entidade.Veiculo;
public class VeiculoServico {
private Session session;
public static void main(String[] args) {
VeiculoServico servico = new VeiculoServico();
System.out.println("-------------------------------");
System.out.println("Criar um veiculo");
System.out.println("-------------------------------");
servico.criar();
}
private void criar() {
Veiculo v1 = new Veiculo();
v1.setAno(2005);
v1.setCor("cor 1");
v1.setModelo("modelo 1");
Veiculo v2 = new Veiculo();
v2.setAno(2007);
v2.setCor("cor 2");
v2.setModelo("modelo 2");
iniciandoSessao();
session.save(v1);
session.save(v2);
session.getTransaction().commit();
}
private void iniciandoSessao() {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
}
}



Um comentário:
Olá bom dia aqui e o rodrigo muito bom a aula faltei a primeira aula mas agora vou acompanhar pelo blog muito boa a ideia. parabéns
Postar um comentário