Ola Pessoal tenho um código rodando no netbeens, aonde eu tenho a minha camada de Banco de Dados e a minha camada de negocio. Eu gostaria de saber como eu faço para trocar a minha camada de Banco de Dados JBDC por uma camada JPA. Além disso, as validações (regras de negócio), quero fazer em um EJB onde os servlets da aplicação irão acessar este EJB para executar as regras.
Peço por gentileza a ajuda de vocês. Abraço a todos.
[/b]Meu codigo Banco de Dados.[b]
[code]import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
*
*/
public class ComandosBanco {
public Connection con; //variaveis de uso comum
public PreparedStatement ps;
public ResultSet rs;
private int controle=0;
public void conectaBanco()throws Exception{ //conecta com o banco
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/bancorandom"; //"local" do banco
String user = "root"; //usuario.
String password = "1"; //senha
con = DriverManager.getConnection(url, user, password);
}
public void inserir(String nome, String idade, String bairro, String endereco, String cpf){ //funcao para iserir
try {
PreparedStatement ps = con.prepareStatement("insert into pessoa values(default,?,?,?,?,?)");
ps.setString(1,nome);
ps.setString(2,idade); //insere no banco com os valores dos parametros que recebeu
ps.setString(3,bairro); //com excessao do codigo, que esta como default devido ao
ps.setString(4,endereco); //auto_increment
ps.setString(5,cpf);
ps.executeUpdate();
setControle(1); //variavel para controle, se a operacao foi bem
//secedida(nao entrou no catch), ela é setada
} catch (SQLException e) { //em 1, senao, ela é setada em 0.
e.printStackTrace();
setControle(0);
}
}
public void excluir(String codigo){
try {
PreparedStatement ps = con.prepareStatement("DELETE FROM pessoa WHERE codigo=?");
ps.setString(1,codigo); //deleta o codigo recebido do banco
setControle(ps.executeUpdate()); //executeUpdate retorna o numero de colunas afetadas
}
catch (Exception e) {
e.printStackTrace();
setControle(0);
}
}
public void alterar(String codigo, String nome, String idade, String bairro, String endereco, String cpf){
try{
PreparedStatement ps = con.prepareStatement("SELECT * FROM pessoa WHERE codigo=?");
ps.setString(1,codigo); //altera do banco com o codigo recebido
ResultSet rs = ps.executeQuery();
ps = con.prepareStatement("update pessoa set nome=?,idade=?,bairro=?,endereco=?,cpf=? WHERE codigo=?");
ps.setString(1, nome); //altera para os novos dados cujo foram recebidos por parametros
ps.setString(2, idade);
ps.setString(3, bairro);
ps.setString(4, endereco);
ps.setString(5, cpf);
ps.setString(6, codigo);
setControle(ps.executeUpdate());
} catch(Exception e){
e.printStackTrace();
setControle(0);
}
}
public void pesquisar (String codigo) {
try {
ps = con.prepareStatement("SELECT * FROM pessoa WHERE codigo=?");
ps.setString(1,codigo); //seleciona no banco o registro com o codigo recebido por parametro
rs = ps.executeQuery();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public ResultSet retornaTudo () {
ResultSet rs = null;
try {
ps = con.prepareStatement("SELECT * FROM pessoa");
rs = ps.executeQuery(); //seleciana todos registros do banco e os coloca dentro de rs
} catch (SQLException ex) {
ex.printStackTrace();
}
return rs; //retorna rs para o Negocio
}
public int getControle() { //get/set da variavel de controle
return controle;
}
public void setControle(int controle) {
this.controle = controle;
}
}[/code]
Minha camada de Negocio.
ALTERA DADOS
[code]import br.unisc.BancoDeDados.ComandosBanco;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
*
*/
@WebServlet(name = “ControleAlterar”, urlPatterns = {"/ControleAlterar"})
public class ControleAlterar extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
ComandosBanco cb = new ComandosBanco(); //intancia e conecta com o banco
try {
cb.conectaBanco();
} catch (Exception ex) {
ex.printStackTrace();
}
String codigo = request.getParameter("codigo"); //pega os parametros da pagina
String nome = request.getParameter("nome");
String idade = request.getParameter("idade");
String bairro = request.getParameter("bairro");
String endereco = request.getParameter("endereco");
String cpf =request.getParameter("cpf");
try{
cb.alterar(codigo,nome,idade,bairro,endereco,cpf); //chama a funcao alterar do banco com os parametros lidos
}
catch(Exception e){
e.printStackTrace();
}
if(cb.getControle()==1){ //testa se deu certo
response.sendRedirect("TudoBelezinha.jsp");
}
else{
response.sendRedirect("Erro.jsp");
}
}
}[/code]
EXCLUI DADOS.
[code]import br.unisc.BancoDeDados.ComandosBanco;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
*/
@WebServlet(name = “ControleExclusao”, urlPatterns = {"/ControleExclusao"})
public class ControleExclusao extends HttpServlet {
ComandosBanco cb = new ComandosBanco();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
String codigo = request.getParameter("codigo"); //pega o codigo da pagina
try {
cb.conectaBanco(); //conecta com o banco
} catch (Exception ex) {
ex.printStackTrace();
}
cb.excluir(codigo); //chama excluir
if(cb.getControle()==1){ //tsta se deu certo
response.sendRedirect("TudoBelezinha.jsp");
}
else{
response.sendRedirect("Erro.jsp");
}
}
}[/code]