3.9 PersistenciaDados.java

<%@page language="java" 
	  contentType="text/html; charset=UTF-8"
    	  pageEncoding="UTF-8"%>
    	
<%@page import="br.aiec.negocio.Pessoa"%>
    	
<%--Importando as taglibs core e formating JSTL --%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%--Alterando o locale --%>
<fmt:setLocale value="${idioma}" />

package br.aiec.persistencia;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

import br.aiec.negocio.Pessoa;

public class PersistenciaDados {

	//FQDN da classe principal do driver JDBC para o Mysql  
	private String DRIVER = "com.mysql.jdbc.Driver";
	
	//URL de conexão com o banco de dados aiec
	private String URL = "jdbc:mysql://localhost:3306/aiec";
	
	//Usuário de conexão do banco de dados
	private String  USER = "root";
	
	//Senha do usuário de conexão do banco de dados
	private String PASSWORD = "123456";
	
	//Objeto de conexão com o banco de dados
	private Connection conexao;
	
	/**
	 * O método construtor tem por finalidade registrar o driver JDBC e inicializar a conexão com o SGBD
	 */
	public PersistenciaDados() {
		try {
			//Registrando o Driver para o MySQL
			Class.forName(DRIVER);
			
			//Estabelecendo a conexão com SGBD
			conexao = DriverManager.getConnection(URL, USER, PASSWORD);
			
		} catch (SQLException e) {			
			throw new RuntimeException("Falha na conexão com o SGBD.", e);
			
		} catch (ClassNotFoundException e) {			
			throw new RuntimeException("Driver JDBC não encontrado.", e);
		}
	}
	
	/**
	 * O método tem por finalidade gravar um objeto na tabela de pessoa do banco de dados
	 * 
	 * @param pessoa
	 */
	public void gravarPessoa(Pessoa pessoa){
		//Query sql para inserir os dados da pessoa no banco
		String sql = "INSERT INTO tbl_pessoa (nome, dataNascimento) VALUES (?, ?)";
		
		try {
			//Interface universal da API JDBC
			PreparedStatement pstmt;

			//criando o objeto do tipo PreparedStatement a partir da conexão			
			pstmt = conexao.prepareStatement(sql);
			
			//Alterando o primeiro simbolo de ? da query pelo nome do parâmetro do tipo Pessoa
			pstmt.setString(1, pessoa.getNome());
			
			//Alterando o segundo simbolo de ? da query pela data de nascimento do parâmetro do tipo Pessoa
			pstmt.setDate(2, new Date(pessoa.getDataNascimento().getTime()));
			
			//Executando a query no banco
			pstmt.execute();
			
			//Finalizando a query
			pstmt.close();
			
		} catch (SQLException e) {
			throw new RuntimeException("Falha ao inserir a pessoa na tbl_pessoa", e);
		}
	}

	/**
	 * O método tem por finalidade consultar todas as pessoas (registros) presentes no banco de dados
	 * @return
	 */
	public List<Pessoa> consultarTodasPessoas() {
		
		//Query sql para consultar todas as pessoas do banco
		String sql = "SELECT * FROM tbl_pessoa";
		
		//Lista de retorno que conterá as pessoas registradas no banco 
		List<Pessoa> listPessoas = new LinkedList<Pessoa>();
		
		try {
			
			//Interface universal da API JDBC
			PreparedStatement pstmt;
			
			//criando o objeto do tipo PreparedStatement a partir da conexão
			pstmt = conexao.prepareStatement(sql);
			
			//Executando a query no banco
			ResultSet rs = pstmt.executeQuery();
			
			//Percorrendo o resultado da query
			while (rs.next()) {
				
				//Criando um objeto do tipo Pessoa
				Pessoa pessoa = new Pessoa();
				
				//Lendo o registro nome da posição atual e gravando no objeto do tipo Pessoa
				pessoa.setNome(rs.getString("nome"));
				
				//Lendo o registro dataNascimento da posição atual e gravando no objeto do tipo Pessoa
				pessoa.setDataNascimento(rs.getDate("dataNascimento"));
				
				//Adicionando o objeto do tipo pessoa a lista de resultados
				listPessoas.add(pessoa);
			}			
			
		} catch (SQLException e) {
			throw new RuntimeException("Falha ao consultar todas as pessoas na tbl_pessoa", e);
		}
		
		//retornando a lista com todos os registros presentes no banco.
		return listPessoas;
	}
}

Observe que a classe “PersistenciaDados.java” é responsável por persistir os dados no banco de dados utilizando a API JDBC e o driver JDBC para o SGBD MySQL.

Copyright © 2014 AIEC.