Exemplo de DAO em JAVA com HSQLDB


DAO – Data Access Object

Pessoal, segue um exemplo de um DAO em JAVA com HSQLDB usando PreparedStatement.
É claro que existem muitas outras formas de fazê-lo, mas é apenas uma ideia.
Em caso de erros enviem comentários.

Falows!!!


——————————————————
Conexão com o Banco
——————————————————

public class CarregaBanco {

public static Connection ConectaBanco(){
try {
Class.forName(“org.hsqldb.jdbcDriver”);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}

String url = “jdbc:hsqldb:hsql://localhost/aula”;
String usuario = “sa”;
String senha = “”;

try {
Connection connection = DriverManager.getConnection(url, usuario, senha);
return connection;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}


——————————————————
DAO Aluno
——————————————————

public void inserir(Aluno aluno) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “INSERT INTO Aluno (nome, idade) VALUES (?, ?)”;
PreparedStatement psInsert = connection.prepareStatement(
sql, PreparedStatement.RETURN_GENERATED_KEYS); //RETURN_GENERATED_KEYS -> Retorna valores criados automaticamente
psInsert.setString(1, aluno.getNome());
psInsert.setInt(2, aluno.getIdade());

psInsert.executeUpdate();

ResultSet generatedKeys = psInsert.getGeneratedKeys();
generatedKeys.next();
aluno.setId(generatedKeys.getLong(“id”));

connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public void atualizar(Aluno aluno) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “UPDATE ALUNO SET NOME=?, IDADE=? WHERE ID=?”;
// PreparedStatement cria um canal de conexão com o BD
PreparedStatement psUpdate = connection.prepareStatement(sql);
psUpdate.setString(1, aluno.getNome());
psUpdate.setInt(2, aluno.getIdade());
psUpdate.setLong(3, aluno.getId());

psUpdate.executeUpdate();

connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public void excluir(Aluno aluno) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “DELETE FROM ALUNO WHERE ID=?”;
PreparedStatement psDelete = connection.prepareStatement(sql);
psDelete.setLong(1, aluno.getId());

psDelete.executeUpdate();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}

}

public Aluno obterAluno(Long id) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “SELECT ID, NOME, IDADE FROM ALUNO WHERE ID=?”;
PreparedStatement psObterAluno = connection.prepareStatement(sql);
psObterAluno.setLong(1, id);

ResultSet rs = psObterAluno.executeQuery();
if (rs != null){
rs.next();
Aluno aluno = new Aluno();
aluno.setId(rs.getLong(“id”));
aluno.setNome(rs.getString(“nome”));
aluno.setIdade(rs.getInt(“idade”));
}
else
return null;
connection.close();
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

public List buscarTodos() {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “SELECT * FROM ALUNO”;
PreparedStatement psBuscarTodos = connection.prepareStatement(sql);

ResultSet rs = psBuscarTodos.executeQuery();

List buscarTodos = new LinkedList();
while (rs.next()){
Aluno aluno = new Aluno();
aluno.setId(rs.getLong(“id”));
aluno.setNome(rs.getString(“nome”));
aluno.setIdade(rs.getInt(“idade”));
buscarTodos.add(aluno);
}
connection.close();
return buscarTodos;
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

public List buscarAlunosPorIdade(int min, int max) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “SELECT ID, NOME, IDADE FROM ALUNO WHERE IDADE BETWEEN ? AND ? ORDER BY IDADE”;
PreparedStatement psBuscarAlunosPorIdade = connection.prepareStatement(sql);
psBuscarAlunosPorIdade.setInt(1, min);
psBuscarAlunosPorIdade.setInt(2, max);

ResultSet rs = psBuscarAlunosPorIdade.executeQuery();

List buscarAlunosPorIdade = new LinkedList();
while (rs.next()){
Aluno aluno = new Aluno();
aluno.setId(rs.getLong(“id”));
aluno.setNome(rs.getString(“nome”));
aluno.setIdade(rs.getInt(“idade”));
buscarAlunosPorIdade.add(aluno);
}

connection.close();
return buscarAlunosPorIdade;
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

public List buscarAlunoPorInicial(char inicial) {
try {
Connection connection = CarregaBanco.ConectaBanco();
String sql = “SELECT ID, NOME, IDADE FROM ALUNO WHERE NOME LIKE ?”;
PreparedStatement psBuscarAlunoPorInicial = connection.prepareStatement(sql);
psBuscarAlunoPorInicial.setString(1, inicial + “%”);

ResultSet rs = psBuscarAlunoPorInicial.executeQuery();

List buscarAlunoPorInicial = new LinkedList();
while (rs.next()){
Aluno aluno = new Aluno();
aluno.setId(rs.getLong(“id”));
aluno.setNome(rs.getString(“nome”));
aluno.setIdade(rs.getInt(“idade”));
buscarAlunoPorInicial.add(aluno);
}

connection.close();
return buscarAlunoPorInicial;

} catch (Exception e) {
e.printStackTrace();
}

return null;
}

Anúncios

Sobre Juliano C. Rossi

Primeiramente, sou o apaixonado pela belíssima flor Danielle! Depois filho e irmão. E, por último, Programador Júnior para soluções embarcadas em C , estudante de Análise e Desenvolvimento de Sistemas e participante de curso de Formação Java.

Publicado em 11/12/2010, em Java e marcado como , , , , , , , . Adicione o link aos favoritos. Deixe um comentário.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: