Das DAO Pattern
Transcrição
Das DAO Pattern
Das Data Access Object Pattern DAO DAO Pattern wozu? • Kapselung des Daten-Zugriffs • Flexibler Austausch der Datenhaltung (File-System, DB, Web-Service, …) • Konkret für EQualS Projekt die SQL-Statements sind sauber getrennt von der Datenschicht (Model / Business). Beispiel: Notentabelle Die Bewertungen von Studentin „Heidi Muster“ Klassendiagramm Auszug DAOFactory Verwalten der Connection public class DAOFactory { private static final String DRIVER_CLASS = " ... "; private static final String CONNECTION_URL = " ... "; private static DAOFactory instance; private Connection connection; // statischer Zugriff auf die Instanz public static DAOFactory getInstance() { if (instance == null) instance = new DAOFactory (); return instance; } DAO Factory //Singleton private DAOFactory() { if (connection == null) { try { Class.forName(DRIVER_CLASS).newInstance; connection = DriverManager.getConnection(CONNECTION_URL); } catch (Exception e) { . . . } } } public RatingDAO createRatingDAO() { return new RatingDAO(connection); } . . . RatingDAO public class RatingDAO { private Connection connection; public RatingDAO(Connection c) { this.connection = c; } public Rating getRating(int studentId, int courseId) throws ... { String selectQuery = "SELECT * FROM Rating WHERE … "; PreparedStatement selectStm = connection.prepareStatement(selectQuery); selectStm.setInt(1, studentId); selectStm.setInt(2, courseId); ResultSet rs = selectStm.executeQuery(); . . . } . . . Vereinfachtes Sequenzdiagramm