Utilizando o Design Pattern DAO

Olá pessoal estou começando a programar em java e estou com algumas dificuldades, e gostaria da ajuda de vocês,
eu estou fazendo um programa onde eu tenho que cadastra, consultar , alterar e excluir uma cidade, eu pesquisei e encontrei vários materiais
referente ao Design Pattern DAO, então consegui fazer o seguinte código.

esta e minha classe de conexão

[/code]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionDataBase { private static final String URL_MYSQL = “jdbc:mysql://localhost/banco”;
private static final String DRIVER_CLASS = “com.mysql.jdbc.Driver”;
private static final String USER = “root”;
private static final String PASS = " ";

public static Connection getConnection() {
System.out.println(“Conectando ao Banco de Dados”);
try {
Class.forName(DRIVER_CLASS);
return DriverManager.getConnection(URL_MYSQL, USER, PASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
}[code]

depois tem a minha classe de GenericDao.

[/code]
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public abstract class GenericDao {
private Connection connection;

protected GenericDao() {
this.connection = ConnectionDataBase.getConnection();
}

protected Connection getConnection() {
return connection;
}

protected void save(String insertSql, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(insertSql);

for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}

pstmt.execute();
pstmt.close();
}

protected void update(String updateSql, Object id, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(updateSql);
for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}
pstmt.setObject(parametros.length + 1, id);
pstmt.execute();
pstmt.close();
}

protected void delete(String deleteSql, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(deleteSql);
for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}

pstmt.execute();
pstmt.close();
}
}[code]

ai depois eu tenho a classe a minha classe Cidades

[/code]import java.sql.Date;

public class Cidades {

private String nome_cidade;
private String UF_cidade;
private Long idcidades;
private int CEP_cidade;
private int codigo_ibge;

public int getCEP_cidade() {
return CEP_cidade;
}

public void setCEP_cidade(int CEP_cidade) {
this.CEP_cidade = CEP_cidade;
}

public String getUF_cidade() {
return UF_cidade;
}

public void setUF_cidade(String UF_cidade) {
this.UF_cidade = UF_cidade;
}

public int getCodigo_ibge() {
return codigo_ibge;
}

public void setCodigo_ibge(int codigo_ibge) {
this.codigo_ibge = codigo_ibge;
}

public Long getIdcidades() {
return idcidades;
}

public void setIdcidades(Long idcidades) {
this.idcidades = idcidades;
}

public String getNome_cidade() {
return nome_cidade;
}

public void setNome_cidade(String nome_cidade) {
this.nome_cidade = nome_cidade;
}

}[code]

depois eu tenho a minha classe CidadesController

[/code]

import cidades.CidadesDAO;
import cidades.Cidades;

import javax.swing.*;
import java.sql.Date;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

public class CidadesController {

/private Date formatarData(String data) throws ParseException {
DateFormat formatter = new SimpleDateFormat(“dd/MM/yyyy”);
return new Date( formatter.parse(data).getTime() );
}
/

public void salvar(String nome_cidade, String UF_cidade, int CEP_cidade, int codigo_ibge) throws SQLException, ParseException {
Cidades cidades = new Cidades();
cidades.setNome_cidade(nome_cidade);
cidades.setUF_cidade(UF_cidade);
cidades.setCEP_cidade(CEP_cidade);
cidades.setCodigo_ibge(codigo_ibge);

new CidadesDAO().salvar(cidades);
}

public void alterar(long idcidades, String nome_cidade, String UF_cidade, int CEP_cidade, int codigo_ibge) throws ParseException, SQLException {
Cidades cidades = new Cidades();
cidades.setIdcidades(idcidades);
cidades.setNome_cidade(nome_cidade);
cidades.setUF_cidade(UF_cidade);
cidades.setCEP_cidade(CEP_cidade);
cidades.setCodigo_ibge(codigo_ibge);

new CidadesDAO().alterar(cidades);
}

public List listaCidades() {
CidadesDAO dao = new CidadesDAO();
try {
return dao.findCidades();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, “Problemas ao localizar contato\n” + e.getLocalizedMessage());
}
return null;
}

public void excluir(long idcidades) throws SQLException {
new CidadesDAO().excluir(idcidades);
}

public Cidades buscaCidadesPorNome(String nome_cidade) throws SQLException {
CidadesDAO dao = new CidadesDAO();
return dao.findByName(nome_cidade);
}
}[code]

e por fim tenho a minha classe CidadesDAO

[/code]
import Conexao.GenericDao;
import cidades.Cidades;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class CidadesDAO extends GenericDao {

public void salvar(Cidades cidades) throws SQLException {
String insert = “INSERT INTO cidades(nome_cidade,UF_cidade,CEP_cidade,codigo_ibge) VALUES(?,?,?,?)”;
save(insert, cidades.getNome_cidade(), cidades.getUF_cidade(), cidades.getCEP_cidade(), cidades.getCodigo_ibge());
}
public void alterar(Cidades cidades) throws SQLException {
String update = "UPDATE cidades " +
"SET nome_cidade = ?, UF_cidade = ?, CEP_cidade = ?,codigo_ibge = ? " +
“WHERE idcidades = ?”;
update(update, cidades.getIdcidades(), cidades.getNome_cidade(), cidades.getUF_cidade(), cidades.getCEP_cidade(), cidades.getCodigo_ibge());
}

public void excluir(long idcidades) throws SQLException {
String delete = “DELETE FROM cidades WHERE idcidades = ?”;
delete(delete, idcidades);
}
public List findCidades() throws SQLException {
List cidade = new ArrayList();

String select = “SELECT * FROM cidades”;

PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
Cidades cidades = new Cidades();
cidades.setIdcidades(rs.getLong(“id_cidades”));
cidades.setNome_cidade(rs.getString(“nome_cidade”));
cidades.setUF_cidade(rs.getString(“UF_cidade”));
cidades.setCEP_cidade(rs.getInt(“CEP_cidade”));
cidades.setCodigo_ibge(rs.getInt(“codigo_ibge”));
cidade.add(cidades);
}

rs.close();
stmt.close();

return cidade;
}

public Cidades findByName(String nome_cidade) throws SQLException {
String select = “SELECT * FROM cidades WHERE nome_cidade = ?”;
Cidades cidades = null;
PreparedStatement stmt = getConnection().prepareStatement(select);
stmt.setString(1, nome_cidade);
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
cidades = new Cidades();
cidades.setIdcidades(rs.getLong(“idcidades”));
cidades.setNome_cidade(rs.getString(“nome_cidade”));
cidades.setUF_cidade(rs.getString(“UF_cidade”));
cidades.setCEP_cidade(rs.getInt(“CEP_cidades”));
cidades.setCodigo_ibge(rs.getInt(“codigo_ibge”));
}

rs.close();
stmt.close();
return cidades;
}
}[code]

ate aqui eu consegui fazer e acredito que esteja certo, a minha duvida é como eu faço agora para com a JFrame
por que agora eu tenho que aplicar meus métodos nos ActionPerformeds que eu criei
tipo AlterarActionPerformed, ExcluirActionPerformed, GravarActionPerformed e ConsultarActionPerformed
por que os tutorias que eu vi so mostra ate esta parte e ai eu estou confuso, se alguem tiver um tutorial, apostila ou
um exemplo para eu ter ideia desde ja sou muito grato.
fico aguardando
muito obrigado

bem vindo ao GUJ coloque seu codigo dentro de code para gente conseguir ler seu codigo e te ajudar

Olá, bom dia!

Por favor, formate o seu código (colocando o código dentro das tags code) e deixe mais claro o que deseja, porque está meio confuso.

Abraço,

Entao pessoal corrigindo o tópico colocando o códigos dentro da tags code, esse e o meu código com as minhas classe usando o Design Pattern DAO

esta e minha classe de conexão

[code]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionDataBase { private static final String URL_MYSQL = “jdbc:mysql://localhost/banco”;
private static final String DRIVER_CLASS = “com.mysql.jdbc.Driver”;
private static final String USER = “root”;
private static final String PASS = " ";

public static Connection getConnection() {
System.out.println(“Conectando ao Banco de Dados”);
try {
Class.forName(DRIVER_CLASS);
return DriverManager.getConnection(URL_MYSQL, USER, PASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
}[/code]

depois tem a minha classe de GenericDao.

[code]
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public abstract class GenericDao {
private Connection connection;

protected GenericDao() {
this.connection = ConnectionDataBase.getConnection();
}

protected Connection getConnection() {
return connection;
}

protected void save(String insertSql, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(insertSql);

for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}

pstmt.execute();
pstmt.close();
}

protected void update(String updateSql, Object id, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(updateSql);
for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}
pstmt.setObject(parametros.length + 1, id);
pstmt.execute();
pstmt.close();
}

protected void delete(String deleteSql, Object… parametros) throws SQLException {
PreparedStatement pstmt = getConnection().prepareStatement(deleteSql);
for (int i = 0; i < parametros.length; i++) {
pstmt.setObject(i+1, parametros[i]);
}

pstmt.execute();
pstmt.close();
}
}[/code]

ai depois eu tenho a classe a minha classe Cidades

[code]
import java.sql.Date;

public class Cidades {

private String nome_cidade;
private String UF_cidade;
private Long idcidades;
private int CEP_cidade;
private int codigo_ibge;

public int getCEP_cidade() {
return CEP_cidade;
}

public void setCEP_cidade(int CEP_cidade) {
this.CEP_cidade = CEP_cidade;
}

public String getUF_cidade() {
return UF_cidade;
}

public void setUF_cidade(String UF_cidade) {
this.UF_cidade = UF_cidade;
}

public int getCodigo_ibge() {
return codigo_ibge;
}

public void setCodigo_ibge(int codigo_ibge) {
this.codigo_ibge = codigo_ibge;
}

public Long getIdcidades() {
return idcidades;
}

public void setIdcidades(Long idcidades) {
this.idcidades = idcidades;
}

public String getNome_cidade() {
return nome_cidade;
}

public void setNome_cidade(String nome_cidade) {
this.nome_cidade = nome_cidade;
}

}[/code]

depois eu tenho a minha classe CidadesController

[code]

import cidades.CidadesDAO;
import cidades.Cidades;

import javax.swing.*;
import java.sql.Date;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

public class CidadesController {

/private Date formatarData(String data) throws ParseException {
DateFormat formatter = new SimpleDateFormat(“dd/MM/yyyy”);
return new Date( formatter.parse(data).getTime() );
}
/

public void salvar(String nome_cidade, String UF_cidade, int CEP_cidade, int codigo_ibge) throws SQLException, ParseException {
Cidades cidades = new Cidades();
cidades.setNome_cidade(nome_cidade);
cidades.setUF_cidade(UF_cidade);
cidades.setCEP_cidade(CEP_cidade);
cidades.setCodigo_ibge(codigo_ibge);

new CidadesDAO().salvar(cidades);
}

public void alterar(long idcidades, String nome_cidade, String UF_cidade, int CEP_cidade, int codigo_ibge) throws ParseException, SQLException {
Cidades cidades = new Cidades();
cidades.setIdcidades(idcidades);
cidades.setNome_cidade(nome_cidade);
cidades.setUF_cidade(UF_cidade);
cidades.setCEP_cidade(CEP_cidade);
cidades.setCodigo_ibge(codigo_ibge);

new CidadesDAO().alterar(cidades);
}

public List listaCidades() {
CidadesDAO dao = new CidadesDAO();
try {
return dao.findCidades();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, “Problemas ao localizar contato\n” + e.getLocalizedMessage());
}
return null;
}

public void excluir(long idcidades) throws SQLException {
new CidadesDAO().excluir(idcidades);
}

public Cidades buscaCidadesPorNome(String nome_cidade) throws SQLException {
CidadesDAO dao = new CidadesDAO();
return dao.findByName(nome_cidade);
}
}[/code]

e por fim tenho a minha classe CidadesDAO

[code]
import Conexao.GenericDao;
import cidades.Cidades;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class CidadesDAO extends GenericDao {

public void salvar(Cidades cidades) throws SQLException {
String insert = “INSERT INTO cidades(nome_cidade,UF_cidade,CEP_cidade,codigo_ibge) VALUES(?,?,?,?)”;
save(insert, cidades.getNome_cidade(), cidades.getUF_cidade(), cidades.getCEP_cidade(), cidades.getCodigo_ibge());
}
public void alterar(Cidades cidades) throws SQLException {
String update = "UPDATE cidades " +
"SET nome_cidade = ?, UF_cidade = ?, CEP_cidade = ?,codigo_ibge = ? " +
“WHERE idcidades = ?”;
update(update, cidades.getIdcidades(), cidades.getNome_cidade(), cidades.getUF_cidade(), cidades.getCEP_cidade(), cidades.getCodigo_ibge());
}

public void excluir(long idcidades) throws SQLException {
String delete = “DELETE FROM cidades WHERE idcidades = ?”;
delete(delete, idcidades);
}
public List findCidades() throws SQLException {
List cidade = new ArrayList();

String select = “SELECT * FROM cidades”;

PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
Cidades cidades = new Cidades();
cidades.setIdcidades(rs.getLong(“id_cidades”));
cidades.setNome_cidade(rs.getString(“nome_cidade”));
cidades.setUF_cidade(rs.getString(“UF_cidade”));
cidades.setCEP_cidade(rs.getInt(“CEP_cidade”));
cidades.setCodigo_ibge(rs.getInt(“codigo_ibge”));
cidade.add(cidades);
}

rs.close();
stmt.close();

return cidade;
}

public Cidades findByName(String nome_cidade) throws SQLException {
String select = “SELECT * FROM cidades WHERE nome_cidade = ?”;
Cidades cidades = null;
PreparedStatement stmt = getConnection().prepareStatement(select);
stmt.setString(1, nome_cidade);
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
cidades = new Cidades();
cidades.setIdcidades(rs.getLong(“idcidades”));
cidades.setNome_cidade(rs.getString(“nome_cidade”));
cidades.setUF_cidade(rs.getString(“UF_cidade”));
cidades.setCEP_cidade(rs.getInt(“CEP_cidades”));
cidades.setCodigo_ibge(rs.getInt(“codigo_ibge”));
}

rs.close();
stmt.close();
return cidades;
}
}[/code]

explicando melhor a minha duvida, eu esqueci de mencionar que meu programa e uma aplicação para desktop, eu li vários tutoriais e apostilas referente ao Design Pattern DAO, mais
basicamente eles so explicam ate esse ponto ,a minha duvida começa justamente aqui, por que agora eu não sei como usar estas classes que eu criei para manipular os dados pela tela de cadastro, ou seja o próximo passo agora seria eu aplicar os meus métodos na minha JFrame , que eu ja criei no caso eu teria que importa meus métodos para os ActionPerformeds da minha JFrame, mais eu não tenho ideia de como fazer isso por que não achei nenhum material, que explica esta parte , se alguem puder me ajudar me indicando alguma apostila, tutorial ou exemplo de como fazer eu ficaria muito grato .