Como vocês organizam suas classes com banco de dados?

Pessoal boa noite!!! Gostaria de saber como vocês organizam suas classes de acesso ao banco de dados. Por exemplo estava pensando em fazer minha aplicação ter várias classes que se relacionam com o banco de dados. Por exemplo: uma classe que só conecta outra classe que só insere os dados no banco tipo o cadastro de cliente, outra classe que so cadastra funcionario… etc …e tal… Seria uma forma correta ou é melhor fazer uma unica classe que faça tudo isso? Como vocês fazem para organizar isso?

Da uma olhada no Pattern DAO :wink: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

Dei uma olhada lá e não entendi muito bem não. :roll:
Alguém poderia ser mais claro? :oops:

O ideal é usar DAO como o JVander sugeriu.

DAO (Data Access Object) é um design pattern (padrão de projeto), que especifica classes para acesso aos dados, o pattern é implementado de acordo com o exemplo que está no link do site da Sun, dê uma pesquisada sobre DAO que você vai encontrar bastante coisa.

Exemplo de DAO:

[code]//essa é o POJO (entidade)
public class Cliente {
private int id;
private String nome;
private String email;

//get & set
}

//esse é o DAO
public ClienteDAO {
public void insert(Cliente cliente){
Connection con = //obtem conexão
PreparedStatement stmt = con.prepareStatement("insert into clientes (nome, email) values(?, ?)");
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getEmail());

  stmt.executeUpdate();

}
}

//inserindo um cliente

Cliente cli = new Cliente();
cli.setNome("Jair");
cli.setEmail("jair@provedor.com.br");

ClienteDAO cdao = new ClienteDAO();
cdao.insert(cli);[/code]

Há uma serie de considerações a serem feitas, como o uso de interfaces e classes abstratas para diminuir o acoplamento, uso de outros padrões de projetos como Factory em conjunto, e coisas do tipo, dá uma pesquisada.

[quote=“jairelton”]O ideal é usar DAO como o JVander sugeriu.

DAO (Data Access Object) é um design pattern (padrão de projeto), que especifica classes para acesso aos dados, o pattern é implementado de acordo com o exemplo que está no link do site da Sun, dê uma pesquisada sobre DAO que você vai encontrar bastante coisa.

Exemplo de DAO:

[code]//essa é o POJO (entidade)
public class Cliente {
private int id;
private String nome;
private String email;

//get & set
}

//esse é o DAO
public ClienteDAO {
public void insert(Cliente cliente){
Connection con = //obtem conexão
PreparedStatement stmt = con.prepareStatement("insert into clientes (nome, email) values(?, ?)");
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getEmail());

  stmt.executeUpdate();

}
}

//inserindo um cliente

Cliente cli = new Cliente();
cli.setNome("Jair");
cli.setEmail("jair@provedor.com.br");

ClienteDAO cdao = new ClienteDAO();
cdao.insert(cli);[/code]

Há uma serie de considerações a serem feitas, como o uso de interfaces e classes abstratas para diminuir o acoplamento, uso de outros padrões de projetos como Factory em conjunto, e coisas do tipo, dá uma pesquisada.[/quote]

Cara obrigado pela luz vou dar uma pesquisada para clarear mais as dúvidas, porém andei olhando sobre o hibernate e até estou arriscando alguns passos nele. Se acaso eu utilizar ele é dispensável o uso do DAO? É outra coisa coisa, é melhor usar direto o hibernate do que usar uma classe pra cada acção no banco de dados? Valeu…

Acho que você não precisa modularizar tanto o programa a este ponto osiel.
Mesmo usando hibernate você pode ter uma classe para cada objeto de negócio, que seja responsável pela conexão e manipulação de dados.

[quote=“SdRuboW”]Acho que você não precisa modularizar tanto o programa a este ponto osiel.
Mesmo usando hibernate você pode ter uma classe para cada objeto de negócio, que seja responsável pela conexão e manipulação de dados.[/quote]

Então o ideal para até efeito de organização é dividir as classes e usar um framework né? Vou me apronfundar no assunto. Se tiverem mais explicações agradeceria… :wink:

Se você ver a definição do DAO, você verá que organização é tudo. Você terá todo o acesso de dados separado em uma camada e provavelmente terá formas de acessar esses DAOs onde for necessário.

Se você conhecer bem o pattern DAO, poderá utilizar quase todos os frameworks de ORM que estão disponíveis.

[quote=“Guilherme Mello”]Se você ver a definição do DAO, você verá que organização é tudo. Você terá todo o acesso de dados separado em uma camada e provavelmente terá formas de acessar esses DAOs onde for necessário.

Se você conhecer bem o pattern DAO, poderá utilizar quase todos os frameworks de ORM que estão disponíveis.[/quote]

hummmm interessante isso… Vou pesquisar sobre esses DAO da vida… pois ainda não entendi muito bem como coloca-los em prática… :wink: