Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Author: João Vieira
- * Date: Oct-2015
- */
- package jfsa.backend;
- import java.sql.*;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- /** Separate Java service class.
- * Backend implementation for the address book application, with "detached entities"
- * simulating real world DAO. Typically these something that the Java EE
- * or Spring backend services provide.
- */
- // Backend service class. This is just a typical Java backend implementation
- // class and nothing Vaadin specific.
- public class DatabaseService extends DataService {
- private static DatabaseService INSTANCE;
- private static List<Processo> processos = new ArrayList<Processo>();
- private static String url, username, password;
- private SimpleDateFormat dateFormat;
- private static int lastID;
- public DatabaseService() {
- dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- lastID = 0;
- }
- public synchronized static DataService getInstance() {
- if (INSTANCE == null) {
- INSTANCE = new DatabaseService();
- // Context context = new InitialContext();
- // DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDB");
- url = "jdbc:mysql://localhost:3306/licenciamento";
- username = "root";
- password = "";
- try {
- Class.forName("com.mysql.jdbc.Driver");
- // System.out.println("Driver loaded!");
- } catch (ClassNotFoundException e) {
- throw new IllegalStateException("Cannot find the driver in the classpath!", e);
- }
- try {
- Connection conn = DriverManager.getConnection(url, username, password);
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT * FROM processos");
- while (rs.next()) {
- Processo p = new Processo();
- int id = rs.getInt("id");
- if (id > lastID)
- lastID = id;
- p.setId(id);
- p.setNumeroProcesso(rs.getString("numeroprocesso"));
- p.setNomeReq(rs.getString("nomereq"));
- p.setMoradaReq(rs.getString("moradareq"));
- p.setCodigoPostalReq(rs.getString("codigopostalreq"));
- p.setLocalidadeReq(rs.getString("localidadereq"));
- p.setNif(rs.getString("nif"));
- p.setNome(rs.getString("nome"));
- p.setMorada(rs.getString("morada"));
- p.setCodigoPostal(rs.getString("codigopostal"));
- p.setLocalidade(rs.getString("localidade"));
- p.setValidade(rs.getDate("validade"));
- p.setEmail(rs.getString("email"));
- p.setTelemovel(rs.getString("telemovel"));
- p.setTelefone(rs.getString("telefone"));
- p.setObservacoes(rs.getString("observacoes"));
- processos.add(p);
- }
- rs.close();
- stmt.close();
- conn.close();
- } catch (SQLException e) {
- throw new IllegalStateException("Não foi possÃvel ligar à base de dados!", e);
- }
- }
- return INSTANCE;
- }
- @Override
- public synchronized List<Processo> getAllProcessos() {
- return processos;
- }
- @Override
- public synchronized void insertProcesso(Processo p) {
- p.setId(++lastID);
- try {
- String sql = "INSERT INTO processos (id, numeroprocesso, nomereq, moradareq, codigopostalreq, localidadereq, nif, "
- + "nome, morada, codigopostal, localidade, validade, email, telemovel, telefone, observacoes) VALUES (";
- sql += "'" + p.getId() + "',";
- sql += "'" + p.getNumeroProcesso() + "',";
- sql += "'" + p.getNomeReq() + "',";
- sql += "'" + p.getMoradaReq() + "',";
- sql += "'" + p.getCodigoPostalReq() + "',";
- sql += "'" + p.getLocalidadeReq() + "',";
- sql += "'" + p.getNif() + "',";
- sql += "'" + p.getNome() + "',";
- sql += "'" + p.getMorada() + "',";
- sql += "'" + p.getCodigoPostal() + "',";
- sql += "'" + p.getLocalidade() + "',";
- sql += "'" + dateFormat.format(p.getValidade()) + "',";
- sql += "'" + p.getEmail() + "',";
- sql += "'" + p.getTelemovel() + "',";
- sql += "'" + p.getTelefone() + "',";
- sql += "'" + p.getObservacoes() + "')";
- Connection conn = DriverManager.getConnection(url, username, password);
- Statement stmt = conn.createStatement();
- stmt.executeUpdate(sql);
- stmt.close();
- conn.close();
- } catch (SQLException e) {
- throw new IllegalStateException("Não foi possÃvel guardar o processo " + p.getId() + " na base de dados!", e);
- }
- processos.add(p);
- }
- @Override
- public synchronized void updateProcesso(Processo p) {
- try {
- String sql = "UPDATE processos SET ";
- sql += "numeroprocesso='" + p.getNumeroProcesso() + "',";
- sql += "nomereq='" + p.getNomeReq() + "',";
- sql += "moradareq='" + p.getMoradaReq() + "',";
- sql += "codigopostalreq='" + p.getCodigoPostalReq() + "',";
- sql += "localidadereq='" + p.getLocalidadeReq() + "',";
- sql += "nif='" + p.getNif() + "',";
- sql += "nome='" + p.getNome() + "',";
- sql += "morada='" + p.getMorada() + "',";
- sql += "codigopostal='" + p.getCodigoPostal() + "',";
- sql += "localidade='" + p.getLocalidade() + "',";
- sql += "validade='" + dateFormat.format(p.getValidade()) + "',";
- sql += "email='" + p.getEmail() + "',";
- sql += "telemovel='" + p.getTelemovel() + "',";
- sql += "telefone='" + p.getTelefone() + "',";
- sql += "observacoes='" + p.getObservacoes() + "' ";
- sql += "WHERE id='" + p.getId() + "'";
- Connection conn = DriverManager.getConnection(url, username, password);
- Statement stmt = conn.createStatement();
- stmt.executeUpdate(sql);
- stmt.close();
- conn.close();
- } catch (SQLException e) {
- throw new IllegalStateException("Não foi possÃvel actualizar o processo " + p.getId() + " na base de dados!", e);
- }
- for (int i = 0; i < processos.size(); i++) {
- if (processos.get(i).getId() == p.getId()) {
- processos.set(i, p);
- return;
- }
- }
- }
- @Override
- public synchronized void deleteProcesso(Processo p) {
- try {
- String sql = "DELETE FROM processos WHERE ";
- sql += "id='" + p.getId() + "'";
- Connection conn = DriverManager.getConnection(url, username, password);
- Statement stmt = conn.createStatement();
- stmt.executeUpdate(sql);
- stmt.close();
- conn.close();
- } catch (SQLException e) {
- throw new IllegalStateException("Não foi possÃvel eliminar o processo " + p.getId() + " da base de dados!", e);
- }
- processos.remove(p);
- }
- @Override
- public synchronized Processo getProcessoById(int processoID) {
- for (int i = 0; i < processos.size(); i++) {
- if (processos.get(i).getId() == processoID)
- return processos.get(i);
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement