![Page 1: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/1.jpg)
Session BeanMarco A. S. Reis
![Page 2: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/2.jpg)
Camada de negócio• Fazem parte da camada de negócio as
classes que contém os métodos que irão gerar a aplicação.
• A medida que a aplicação cresce, teremos mais métodos reutilizáveis.
![Page 3: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/3.jpg)
Configuração• A partir do EJB 3.0 temos alguns avanços e
facilidades no gerenciamento das entidades.• Para começar, vamos criar o arquivo
SistemaBancario-ds.xml em META-INF.• Em seguida, atualizaremos o
persistence.xml.• Obs.: copiar o driver do mysql (mysql-
connector-xxx.jar para jboss/server/default/lib).
![Page 4: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/4.jpg)
SistemaBancario-ds.xml<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/SistemaBancarioDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/financeiro</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>S E N H A</password>
<min-pool-size>1</min-pool-size>
<max-pool-size>2</max-pool-size>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
![Page 5: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/5.jpg)
persistence.xml<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="financeiro-pu">
<jta-data-source>java:jdbc/SistemaBancarioDS</jta-data-source>
<properties>
<property name="show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
</persistence>
![Page 6: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/6.jpg)
IFachadaCorrentistapackage org.financeiro.negocio;
import java.util.*;import javax.ejb.*;import org.financeiro.entidades.*;
@Localpublic interface IFachadaCorrentista { public Correntista consultaPeloId(Long id);
public List<Correntista> consultaTodos();
public void inserir(Correntista correntista);
public void excluir(Correntista correntista);}
![Page 7: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/7.jpg)
FachadaCorrentistapackage org.financeiro.negocio;Import {…...}
@Statelesspublic class FachadaCorrentista implements IFachadaCorrentista { @PersistenceContext(unitName = "financeiro-pu") private EntityManager em;
public Correntista consultaPeloId(Long id) { return em.find(Correntista.class, id); }
public void inserir(Correntista correntista) { em.merge(correntista); }
public List<Correntista> consultaTodos() { Query query = em.createQuery("FROM Correntista"); return query.getResultList(); }
public void excluir(Correntista correntista) { em.refresh(correntista); em.remove(correntista); }}
![Page 8: Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida](https://reader035.vdocuments.pub/reader035/viewer/2022081602/552fc0fb497959413d8b97ee/html5/thumbnails/8.jpg)
Injeção de Dependência• Na FachadaCorrentista vemos um exemplo
de Injeção de Dependência (@PersistenceContext).
• Alguns autores acreditam que substitui o DAO, que passa a ser um anti-pattern.
• Soluções híbridas com injeção de dependência de DAO podem ser uma alternativa.