The following is the code: ItemsSaleDAY:
package com.livro.capitulo3.crudannotations;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.hibernate.*;
import com.livro.capitulo3.conexao.HibernateUtil;
public class ItensVendaDAO {
@PersistenceContext
private EntityManager em;
public void salvar(ItensVenda itensVenda) {
Session sessao = null;
Transaction transacao = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
sessao.save(itensVenda);
transacao.commit();
} catch (HibernateException e) {
System.out.println("Não foi possível inserir ItensVenda. Erro: " + e.getMessage());
} finally {
try {
sessao.close();
} catch (Throwable e) {
System.out.println("Erro ao fechar operação de inserção. Mensagem: " + e.getMessage());
}
}
}
public void atualizar(ItensVenda itensVenda) {
Session sessao = null;
Transaction transacao = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
sessao.update(itensVenda);
transacao.commit();
} catch (HibernateException e) {
System.out.println("Não foi possível alterar itensvenda. Erro: " + e.getMessage());
} finally {
try {
sessao.close();
} catch (Throwable e) {
System.out.println("Erro ao fechar operação de atualização. Mensagem: " + e.getMessage());
}
}
}
public void excluir(ItensVenda itensVenda) {
Session sessao = null;
Transaction transacao = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
sessao.delete(itensVenda);
transacao.commit();
} catch (HibernateException e) {
System.out.println("Não foi possível excluir itensvenda. Erro: " + e.getMessage());
} finally {
try {
sessao.close();
} catch (Throwable e) {
System.out.println("Erro ao fechar operação de exclusão. Mensagem: " + e.getMessage());
}
}
}
public List<ItensVenda> listarItensVenda (){
@SuppressWarnings("unused")
Query lista = (Query) em.createQuery("select v from Venda v");
return listarItensVenda();
}
@SuppressWarnings("unchecked")
public List<ItensVenda> listar() {
Session sessao = null;
Transaction transacao = null;
Query consulta = null;
List<ItensVenda> resultado = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
consulta = sessao.createQuery("from ItensVenda");
resultado = consulta.list();
transacao.commit();
return resultado;
} catch (HibernateException e) {
System.out.println("Não foi possível selecionar itensvenda. Erro: " + e.getMessage());
throw new HibernateException(e);
} finally {
try {
sessao.close();
} catch (Throwable e) {
System.out.println("Erro ao fechar operação de consulta. Mensagem: " + e.getMessage());
}
}
}
public ItensVenda buscaItensvenda(int valor) {
ItensVenda itensVenda = null;
Session sessao = null;
Transaction transacao = null;
Query consulta = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
consulta = sessao.createQuery("from ItensVenda where codigo = :parametro");
consulta.setInteger("parametro", valor);
itensVenda = (ItensVenda) consulta.uniqueResult();
transacao.commit();
return itensVenda;
} catch (HibernateException e) {
System.out.println("Não foi possível buscar contato. Erro: " + e.getMessage());
} finally {
try {
sessao.close();
} catch (Throwable e) {
System.out.println("Erro ao fechar operação de buscar. Mensagem: " + e.getMessage());
}
}
return itensVenda ;
}
public static void main (String[] args ) {
ItensVendaDAO dao = new ItensVendaDAO();
ItensVenda venda = new ItensVenda();
venda.setCodigo(1);
venda.setDescricao("Venda 2");
venda.setPreco(44.5f);
venda.setQuantidade(2);
venda.setValor(33);
dao.salvar(venda);
}
} Here is another class with annotations:
package com.livro.capitulo3.crudannotations;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "itensvenda")
public class ItensVenda {
@Id
@Column(name = "codigo")
private Integer codigo;
@Column(name = "descricao",length = 200, nullable = true)
private String descricao;
@Column(name = "preco")
private float preco;
@Column(name = "quantidade")
private Integer quantidade;
@Column(name = "valor")
private float valor;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public float getPreco() {
return preco;
}
public void setPreco(float preco) {
if(preco >0) {
this.preco = preco;
}else
System.out.println("O Preço Não pode ser igual a zero");
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
if(quantidade > 0) {
this.quantidade = quantidade;
} else
System.out.println("A quantidade não pode ser igual a zero ");
}
public float getValor() {
return valor;
}
public void setValor(float valor) {
this.valor = quantidade * preco;
}
}
Follow xml code:
<?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>
<!-- Configuração da conexão com o banco MySQL e dialeto -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property
name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property
name="connection.url">jdbc:mysql://localhost/trabalhomodular</property>
<property name="connection.username">root</property>
<property name="connection.password"> </property>
<!-- Usando as configurações do C3PO para pool de conexões -->
<property name="c3po.min_size">5</property>
<property name="c3po.max_size">20</property>
<property name="c3po.timeout">300</property>
<property name="c3po.max_statements">50</property>
<property name="c3po.idle_test_period">3000</property>
<!-- Configurações de debug -->
<!--
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="generate_statistics">true</property>
<property name="use_sql_comments">true</property>
-->
<!-- Mapeando classes -->
<mapping resource="com/livro/capitulo3/crudxml/ItensVenda.hbm.xml"/>
<mapping class="com.livro.capitulo3.crudannotations.ItensVendaDAO"/>
<!-- Mapeando classes -->
<mapping resource="com/livro/capitulo3/crudxml/NotaVenda.hbm.xml"/>
<mapping class="com.livro.capitulo3.crudannotations.NotaVendaDAO"/>
</session-factory>
</hibernate-configuration>