brigate/src/dao/ContattoDao.java

222 lines
5.4 KiB
Java
Raw Normal View History

2020-04-24 16:44:53 +02:00
package dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
import java.util.ArrayList;
import bean.Contatto;
public class ContattoDao implements ContattoDaoI {
OracleConnection c = new OracleConnection();
@Override
public boolean create(String nome, String cognome, String servizio_sociale, String area, String indirizzo,
long telefono, String email, int numero_persone, String composizione_nucleo, String note_sacchetto) {
Connection connection = c.open();
String query = "insert into contatti (nome, cognome, servizio_sociale, area, indirizzo, telefono, email, numero, composizione_nucleo, note_sacchetto) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
int n = -1;
try {
PreparedStatement st = connection.prepareStatement(query);
st.setString(1, nome);
st.setString(2, cognome);
st.setString(3, servizio_sociale);
st.setString(4, area);
st.setString(5, indirizzo);
st.setLong(6, telefono);
st.setString(7, email);
st.setInt(8, numero_persone);
st.setString(9, composizione_nucleo);
st.setString(10, note_sacchetto);
n = st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return n == -1 ? false : true;
}
@Override
public Contatto read(long telefono) {
String query = "select nome, cognome, email, servizio_sociale, area, indirizzo, numero, composizione_nucleo, note_sacchetto, ultima_consegna from contatti where telefono = ?";
Contatto contatto = null;
Connection connection = c.open();
try {
PreparedStatement st = connection.prepareStatement(query);
st.setLong(1, telefono);
ResultSet rs = st.executeQuery();
while (rs.next()) {
contatto = new Contatto();
contatto.setTelefono(telefono);
contatto.setNome(rs.getString(1));
contatto.setCognome(rs.getString(2));
contatto.setEmail(rs.getString(3));
contatto.setServizio_sociale(rs.getString(4));
contatto.setArea(rs.getString(5));
contatto.setIndirizzo(rs.getString(6));
contatto.setNumero_persone(rs.getInt(7));
contatto.setComposizione_nucleo(rs.getString(8));
contatto.setNote_sacchetto(rs.getString(9));
Date data = rs.getDate(10);
if (data != null) {
contatto.setUltima_consegna(data.toLocalDate());
}
}
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return contatto;
}
@Override
public boolean updateConsegna(long telefono, LocalDate data_consegna) {
String query = "update contatti set ultima_consegna=? where telefono=?";
int n = -1;
Connection connection = c.open();
try {
PreparedStatement st = connection.prepareStatement(query);
st.setDate(1, Date.valueOf(data_consegna));
st.setLong(2, telefono);
n = st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return n == -1 ? false : true;
}
@Override
public boolean update(String nome, String cognome, String servizio_sociale, String area, String indirizzo,
long telefono, String email, int numero_persone, String composizione_nucleo, String note_sacchetto) {
String query = "update contatti set nome=?, cognome=?, servizio_sociale=?, area=?, indirizzo=?, telefono=?, email = ?, numero=?, composizione_nucleo=?, note_sacchetto=? where telefono=?";
int n = -1;
Connection connection = c.open();
try {
PreparedStatement st = connection.prepareStatement(query);
st.setString(1, nome);
st.setString(2, cognome);
st.setString(3, servizio_sociale);
st.setString(4, area);
st.setString(5, indirizzo);
st.setLong(6, telefono);
st.setString(7, email);
st.setInt(8, numero_persone);
st.setString(9, composizione_nucleo);
st.setString(10, note_sacchetto);
st.setLong(11, telefono);
n = st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return n == -1 ? false : true;
}
@Override
public boolean delete(long telefono) {
String query = "delete from contatti where telefono=?";
int n = -1;
Connection connection = c.open();
try {
PreparedStatement st = connection.prepareStatement(query);
st.setLong(1, telefono);
n = st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return n == -1 ? false : true;
}
@Override
public ArrayList<Contatto> leggiTutti() {
String query = "select telefono, email, nome, cognome, servizio_sociale, area, indirizzo, numero, composizione_nucleo, note_sacchetto, ultima_consegna from contatti";
ArrayList<Contatto> contatti = new ArrayList<Contatto>();
Connection connection = c.open();
try {
PreparedStatement st = connection.prepareStatement(query);
ResultSet rs = st.executeQuery();
while (rs.next()) {
Contatto contatto = new Contatto();
contatto.setTelefono(rs.getLong(1));
contatto.setEmail(rs.getString(2));
contatto.setNome(rs.getString(3));
contatto.setCognome(rs.getString(4));
contatto.setServizio_sociale(rs.getString(5));
contatto.setArea(rs.getString(6));
contatto.setIndirizzo(rs.getString(7));
contatto.setNumero_persone(rs.getInt(8));
contatto.setComposizione_nucleo(rs.getString(9));
contatto.setNote_sacchetto(rs.getString(10));
Date data = rs.getDate(11);
if (data != null) {
contatto.setUltima_consegna(data.toLocalDate());
}
contatti.add(contatto);
}
} catch (SQLException e) {
e.printStackTrace();
}
c.close();
return contatti;
}
}