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 Setenderecos; @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 Listusuarios; 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