Baixe o app para aproveitar ainda mais
Prévia do material em texto
JAVA COM NETBEANS Criando entidades no java com Netbeans, a partir do banco de dados. 1- após a aplicação está conectado ao banco, será necessário criar no <pacote default> o arquivo de Engenharia Reversa do Hibernate. Clicar sobre o pacote com o botão direito do mouse → novo → outros → Hibernate → Escolher a opção 'Assistente de Engenharia Rerversa do Hibernate” → Próximo → Próximo Clicar em “adicionar tudo” e “finalizar”: 2 – Criando as classes POJOs: Clicar com o botão direito sobre o pacote entidade, selecionar “Novo → Outros → Hibernate→Arquivos de Mapeamento do Hibernate e Pojos de Ban...” Selecionar conforme imagem abaixo, e finalizar: A estrutura inicial ficará conforme imagem ao lado: Exemplo com base nos seguintes dados: Banco de Dados Mysql: CREATE TABLE usuario ( id_usuario int(10) PRIMARY KEY, cpf VARCHAR(10) UNIQUE, nome VARCHAR(10), id_departamento int(10) ); CREATE TABLE departamento ( id_departamento int(10) PRIMARY KEY, dscdepartamento VARCHAR(10), sigladepartamento VARCHAR(10) ); ALTER TABLE usuario ADD FOREIGN KEY(id_departamento) REFERENCES departamento (id_departamento); Hibernate.cfg.xml (criado no inicio após selecionar o framework hibernate como padrão) <?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"> <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://localhost:3306/nomedobanco? zeroDateTimeBehavior=convertToNull</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">senhadousuario</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.hbm2ddl.auto">update</property> <mapping resource="entidade/Usuario.hbm.xml"/> <mapping resource="entidade/Departamento.hbm.xml"/> </session-factory> </hibernate-configuration> hibernate.reveng.xml(criado após procedimento 1 do conteúdo da primeira página) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd"> <hibernate-reverse-engineering> <schema-selection match-catalog="casop"/> <table-filter match-name="usuario"/> <table-filter match-name="departamento"/> </hibernate-reverse-engineering> Departamento.java(criado após procedimento e de forma automática) package entidade; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name="departamento" ,catalog="casop" ) public class Departamento implements java.io.Serializable { private int idDepartamento; private String dscdepartamento; private String sigladepartamento; private Set<Usuario> usuarios = new HashSet<Usuario>(0); public Departamento() { } public Departamento(int idDepartamento) { this.idDepartamento = idDepartamento; } public Departamento(int idDepartamento, String dscdepartamento, String sigladepartamento, Set<Usuario> usuarios) { this.idDepartamento = idDepartamento; this.dscdepartamento = dscdepartamento; this.sigladepartamento = sigladepartamento; this.usuarios = usuarios; } @Id @Column(name="id_departamento", unique=true, nullable=false) public int getIdDepartamento() { return this.idDepartamento; } public void setIdDepartamento(int idDepartamento) { this.idDepartamento = idDepartamento; } @Column(name="dscdepartamento", length=10) public String getDscdepartamento() { return this.dscdepartamento; } public void setDscdepartamento(String dscdepartamento) { this.dscdepartamento = dscdepartamento; } @Column(name="sigladepartamento", length=10) public String getSigladepartamento() { return this.sigladepartamento; } public void setSigladepartamento(String sigladepartamento) { this.sigladepartamento = sigladepartamento; } @OneToMany(fetch=FetchType.LAZY, mappedBy="departamento") public Set<Usuario> getUsuarios() { return this.usuarios; } public void setUsuarios(Set<Usuario> usuarios) { this.usuarios = usuarios; } } Departamento.hbm.xml (criado após procedimento 2 e de forma automática) <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- Generated 05/10/2016 14:58:02 by Hibernate Tools 4.3.1 --> <hibernate-mapping> <class name="entidade.Departamento" table="departamento" catalog="casop" optimistic-lock="version"> <id name="idDepartamento" type="int"> <column name="id_departamento" /> <generator class="assigned" /> </id> <property name="dscdepartamento" type="string"> <column name="dscdepartamento" length="10" /> </property> <property name="sigladepartamento" type="string"> <column name="sigladepartamento" length="10" /> </property> <set name="usuarios" table="usuario" inverse="true" lazy="true" fetch="select"> <key> <column name="id_departamento" /> </key> <one-to-many class="entidade.Usuario" /> </set> </class> </hibernate-mapping> Usuario.java (criado após procedimento 2 e de forma automática) package entidade; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.UniqueConstraint; @Entity @Table(name="usuario" ,catalog="casop" , uniqueConstraints = @UniqueConstraint(columnNames="cpf") ) public class Usuario implements java.io.Serializable { private int idUsuario; private Departamento departamento; private String cpf; private String nome; public Usuario() { } public Usuario(int idUsuario) { this.idUsuario = idUsuario; } public Usuario(int idUsuario, Departamento departamento, String cpf, String nome) { this.idUsuario = idUsuario; this.departamento = departamento; this.cpf = cpf; this.nome = nome; } @Id @Column(name="id_usuario", unique=true, nullable=false) public int getIdUsuario() { return this.idUsuario; } public void setIdUsuario(int idUsuario) { this.idUsuario = idUsuario; } @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="id_departamento") public Departamento getDepartamento() { return this.departamento; } public void setDepartamento(Departamento departamento) { this.departamento = departamento; } @Column(name="cpf", unique=true, length=10) public String getCpf() { return this.cpf; } public void setCpf(String cpf) { this.cpf = cpf; } @Column(name="nome", length=10) public String getNome() { return this.nome; } public void setNome(String nome) { this.nome = nome; } } Usuario.hbm.xml(criado após procedimento 2 e de forma automática) <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- Generated 05/10/2016 14:58:02 by Hibernate Tools 4.3.1 --> <hibernate-mapping> <class name="entidade.Usuario" table="usuario" catalog="casop" optimistic-lock="version"> <id name="idUsuario" type="int"> <column name="id_usuario" /> <generator class="assigned" /> </id> <many-to-one name="departamento" class="entidade.Departamento" fetch="select"> <column name="id_departamento" /> </many-to-one> <property name="cpf" type="string"> <column name="cpf" length="10" unique="true" /> </property> <property name="nome" type="string"> <column name="nome" length="10" /> </property> </class> </hibernate-mapping> Autor: Cláudio de Nascimento São Gonçalo-RJ, em 05/10/2016
Compartilhar