package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import bean.Contatto; public class OrdiniDao implements OrdiniDaoI { ContattoDao cd = new ContattoDao(); OracleConnection c = new OracleConnection(); @Override public boolean aggiungi(long telefono) { // Cerca contatto nel db Contatto contatto = cd.read(telefono); Connection connection = c.open(); // Se esiste, aggiungilo agli ordini if (contatto != null) { String query = "insert into ordini values (?)"; int n = -1; 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; } else { c.close(); return false; } } @Override public boolean rimuovi(long telefono) { String query = "delete from ordini 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(); } return n == -1 ? false : true; } @Override public boolean aggiungi(Contatto contatto) { // Cerca contatto nel db Contatto cont = cd.read(contatto.getTelefono()); Connection connection = c.open(); // Se esiste, aggiungilo agli ordini if (c != null) { String query = "insert into ordini values (?)"; int n = -1; try { PreparedStatement st = connection.prepareStatement(query); st.setLong(1, cont.getTelefono()); n = st.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } c.close(); return n == -1 ? false : true; } else { c.close(); return false; } } @Override public boolean rimuovi(Contatto contatto) { String query = "delete from ordini where telefono=?"; int n = -1; Connection connection = c.open(); try { PreparedStatement st = connection.prepareStatement(query); st.setLong(1, contatto.getTelefono()); n = st.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } c.close(); return n == -1 ? false : true; } @Override public ArrayList leggiTutti() { String query = "select * from ordini"; ArrayList contatti = new ArrayList(); Connection connection = c.open(); try { PreparedStatement st = connection.prepareStatement(query); ResultSet rs = st.executeQuery(); while (rs.next()) { long telefono = rs.getLong(1); Contatto contatto = cd.read(telefono); contatti.add(contatto); } } catch (SQLException e) { e.printStackTrace(); } c.close(); return contatti; } @Override public ArrayList leggiTutti(int limit) { String query = "select o.telefono from ordini o, contatti c where rownum <= " + limit + " and o.telefono=c.telefono order by c.area"; ArrayList contatti = new ArrayList(); Connection connection = c.open(); try { PreparedStatement st = connection.prepareStatement(query); ResultSet rs = st.executeQuery(); while (rs.next()) { System.out.println("query eseguita"); long telefono = rs.getLong(1); Contatto contatto = cd.read(telefono); contatti.add(contatto); } } catch (SQLException e) { e.printStackTrace(); } c.close(); return contatti; } @Override public boolean rimuoviTutti() { String query = "delete from ordini"; int n = -1; Connection connection = c.open(); try { PreparedStatement st = connection.prepareStatement(query); n = st.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } c.close(); return n == -1 ? false : true; } @Override public boolean rimuoviPrimi(int numero) { String query = "delete from ordini limit " + numero; int n = -1; Connection connection = c.open(); try { PreparedStatement st = connection.prepareStatement(query); n = st.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } c.close(); return n == -1 ? false : true; } }