brigate/src/dao/OrdiniDao.java

224 lines
4.1 KiB
Java

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<Contatto> leggiTutti() {
String query = "select * from ordini";
ArrayList<Contatto> contatti = new ArrayList<Contatto>();
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<Contatto> 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<Contatto> contatti = new ArrayList<Contatto>();
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;
}
}