Page 82 - Linux_7

Basic HTML Version

Linux Inside
82
public void setTitle(String title) {
this.title = title;
}
}
public class FilmHelper {
Session session = null;
public FilmHelper() {
this.session =
HibernateUtil.getSessionFactory().getCurrentSession();
}
public List getFilmTitles(int startID, int endID) {
List<Film> filmList = null;
try {
org.hibernate.Transaction tx =
session.beginTransaction();
Query q = session.createQuery(“from Film as film
where film.filmId between ‘“ + startID + “‘ and ‘“ + endID
+ “‘“);
filmList = (List<Film>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
return filmList;
}
}
στη γραμμή
this.session =
HibernateUtil.getSessionFactory().getCurrentSession();
βλέπουμε ότι γίνεται χρήση της κλάσης HibernateUtil προ-
κειμένου να αποκτήσουμε πρόσβαση στη βάση δεδομένων
μέσω του αντικειμένου session. Στη συνέχεια και μέσω του
αντικειμένου session, θέτω ένα SQL ερώτημα στη βάση δεδο-
μένων με το οποίο ζητώ όλες τις ταινίες εντός ενός συγκεκρι-
μένου εύρους ID (γραμμή Query q = session.createQuery
(“from Film as film where film.filmId between ‘“ + startID + “‘
and ‘“ + endID + “‘“); ). Με αυτόν τον τρόπο, έχω μία λίστα
από ταινίες (List<Film> filmList) για καθεμία από τις οποίες
ξέρω το ID της και τον τίτλο της. Το μόνο που απομένει πλέ-
ον, είναι η εμφάνιση αυτής της πληροφορίας μέσω μίας ιστο-
σελίδας.
Δημιουργία της κλάσης FilmController
Δημιουργούμε μία τρίτη (και τελευταία!) κλάση με όνομα
FilmController, η οποία θα αποτελεί τη διασύνδεση μεταξύ του
browser του χρήστη και της εφαρμογής μας. Ουσιαστικά στον
HTML κώδικα της ιστοσελίδας των χρηστών της εφαρμογής
μας θα υπάρχει αναφορά ΜΟΝΟ σε αυτή την κλάση, η οποία
με κατάλληλες κλήσεις στις άλλες δύο κλάσεις που δημιουρ-
γήσαμε, θα εμφανίζει τους τίτλους των ταινιών. Ο κώδικάς
της είναι ο παρακάτω:
@ManagedBean
@SessionScoped
public class FilmController {
int startId;
int endId;
DataModel filmTitles;
FilmHelper helper;
/**
* Creates a new instance of FilmController
*/
public FilmController() {
helper = new FilmHelper();
startId = 1;
endId = 10;
}
public FilmController(int startId, int endId) {
helper = new FilmHelper();
this.startId = startId;
this.endId = endId;
}
public DataModel getFilmTitles() {
if (filmTitles == null) {
filmTitles = new
ListDataModel(helper.getFilmTitles(startId, endId));
}
return filmTitles;
}
void recreateModel() {
filmTitles = null;
Linux Labs - Java EE
Το logo του Glassfish Application Server .
Εικόνα της εφαρμογής.
6