package dao.implementation.mysql.chauffeur;
import modele.chauffeur.ReferenceChauffeur;
import dao.IReadOnlyDao;
import dao.implementation.mysql.AccessMySql;
import gui.MainWindow;
import gui.util.TaxiGuiUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* <p> MySqlReferenceChauffeurDao est une classe Dao qui implemente les m�thodes de l'interface IReadOnlyDao<ReferenceChauffeur> :</>
* <ul>
* <li> public ReferenceChauffeur find(final int id) : cherche le chauffeur par son id </li>
* <li> public ArrayList<ReferenceChauffeur> findAll() : renvoie la liste des chauffeurs</li>
* </ul>
* <p>Dans chaque m�thode, on �tablit la connexion avec la base de donn�es et on la synchronise</p>
*
* @author Kasandra
*
*/
public class MySqlReferenceChauffeurDao implements IReadOnlyDao<ReferenceChauffeur> {
private final static String FIND_ALL = "select idChauf, nomChauf, prenomChauf from tchauffeurs";
private final static String FIND_BY_ID = FIND_ALL + " where idChauf = ?";
public ReferenceChauffeur find(final int id) {
final ReferenceChauffeur[] result = new ReferenceChauffeur[1];
AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
public void runWithconnection(Connection connection) {
try {
PreparedStatement smt = null;
ResultSet res = null;
try {
smt = connection.prepareStatement(FIND_BY_ID);
smt.setInt(1, id);
res = smt.executeQuery();
if (res.next()) {
result[0] = new ReferenceChauffeur(res.getInt(1), res.getString(2), res.getString(3));
}
} finally {
try {
if (res != null) {
res.close();
}
} finally {
if (smt != null) {
smt.close();
}
}
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
});
return result[0];
}
public ArrayList<ReferenceChauffeur> findAll() {
final ArrayList<ReferenceChauffeur> results = new ArrayList<ReferenceChauffeur>();
AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
public void runWithconnection(Connection connection) {
try {
PreparedStatement smt = null;
ResultSet res = null;
try {
smt = connection.prepareStatement(FIND_ALL);
res = smt.executeQuery();
while (res.next()) {
ReferenceChauffeur referenceChauffeur = new ReferenceChauffeur(res.getInt(1), res.getString(2), res.getString(3));
results.add(referenceChauffeur);
}
} finally {
try {
if (res != null) {
res.close();
}
} finally {
if (smt != null) {
smt.close();
}
}
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
});
return results;
}
}