Beranda > Info Trik Java > Menciptakan FilmHelper.java Helper Class

Menciptakan FilmHelper.java Helper Class

Februari 1, 2010

Anda sekarang akan menciptakan sebuah kelas penolong dalam dvdrental paket yang akan digunakan untuk melakukan query Hibernate di database. Anda akan menggunakan Hibernate Query Language (HQL) editor untuk membangun dan menguji query untuk mengambil data. Setelah menguji pertanyaan Anda akan menciptakan metode di kelas penolong yang membangun dan menjalankan queries. Anda kemudian akan memanggil metode penolong di kelas dari JSF dikelola kacang.

Menciptakan Kelas

Dalam bagian ini anda menggunakan File Baru wizard untuk membuat kelas pembantu FilmHelper.java dalam dvdrental paket.     Anda akan membuat sesi Hibernate dengan menelepon getSessionFactory di HibernateUtil.java dan menciptakan     beberapa metode pembantu untuk membuat query untuk mengambil data dari database.     Anda akan memanggil metode penolong dari halaman JSP.

  1. Klik kanan dvdrental paket source node dan pilih New> Java Class untuk membuka wizard New File.
  2. Tipe FilmHelper untuk nama kelas.
  3. Periksa bahwa Paket dvdrental. Klik Finish.
  4. Menambahkan kode berikut (dalam huruf tebal) untuk membuat sesi Hibernate.
    public class FilmHelper (
    
        Sesi sesi = null;
    
        FilmHelper publik () (
            this.session = HibernateUtil.getSessionFactory (). getCurrentSession ();
        )
    
    }
  5. Fix impor Anda (org.hibernate.Session) Dan menyimpan perubahan Anda.

Anda sekarang akan memodifikasi FilmHelper.java menambahkan metode yang query DB.

Menghitung dan Mengambil Judul Film Aktor HQL Query Menggunakan

Dalam latihan ini Anda akan membuat sebuah Hibernate Query Language (HQL) query yang query     database untuk mengambil daftar judul film dari Film meja.     Anda kemudian akan menambahkan metode yang baik queries Film_actor Aktor dan meja     menjemput para aktor yang terlibat dalam film tertentu.

Film tabel memiliki catatan 1000 sehingga metode untuk mengambil daftar film harus mampu     mengambil record berdasarkan filmId primary key.     Anda akan menggunakan HQL editor untuk membangun dan menguji HQL query.     Setelah Anda telah menciptakan permintaan yang benar Anda akan menambahkan metode ke kelas yang dapat menghasilkan permintaan yang tepat.

  1. Klik kanan hibernate.cfg.xml Proyek di jendela dan pilih Run HQL Query untuk membuka editor HQL query.
  2. Pilih hibernate.cfg dari daftar drop-down pada toolbar.
  3. Test koneksi dengan mengetikkan berikut di bagian editor dan mengklik tombol Run Query HQL ( Run HQL Query button) Pada toolbar.
    dari Film

    Ketika Anda klik Jalankan HQL Query Anda dapat melihat hasil query di jendela Botton HQL query editor.

    Generate Hibernate Mapping Files and POJOs wizardJika Anda mengklik tombol SQL Anda dapat melihat query SQL setara.

    pilih film0_.film_id sebagai col_0_0_ dari sakila.film film0_
  4. Ketik pertanyaan berikut untuk mengambil catatan di Film film meja tempat id adalah antara 100 dan 200.
    dari Film sebagai film di mana film.filmId antara 100 dan 200

    Jendela hasil menampilkan daftar rekaman.         Sekarang bahwa Anda sudah menguji bahwa query mengembalikan hasil yang diinginkan, Anda dapat menggunakan query di kelas penolong.

  5. Tambahkan metode berikut getFilmTitles untuk FilmHelper.java untuk mengambil film-film di mana film id adalah antara rentang tertentu         ditentukan oleh variabel-variabel startID dan endID.
    Daftar publik getFilmTitles (int startID, int endID) (
        Daftar <Film> filmList = null;
        try (
            org.hibernate.Transaction tx = session.beginTransaction ();
            Query q = session.createQuery ( "dari Film sebagai film di mana film.filmId antara '" + startID + "' dan '" + endID +"'");
            filmList = (Daftar <Film>) q.list ();
        ) Catch (Exception e) (
            e.printStackTrace ();
        )
        kembali filmList;
    )
  6. Tambahkan metode berikut getActorsByID yang mengambil para aktor dalam suatu         film. Metode konstruksi query menggunakan filmId sebagai variabel input.
    Daftar publik getActorsByID (int filmId) (
        Daftar <Actor> actorList = null;
        try (
            org.hibernate.Transaction tx = session.beginTransaction ();
            Query q = session.createQuery ( "dari Aktor sebagai aktor di mana actor.actorId di (pilih FilmActor sebagai filmActor.actor.actorId dari filmActor mana filmActor.film.filmId = '" + filmId + "')");
            actorList = (Daftar <Actor>) q.list ();
    
        ) Catch (Exception e) (
            e.printStackTrace ();
        )
    
        kembali actorList;
    )
  7. Memperbaiki impor dan menyimpan perubahan Anda.Ketika Anda memperbaiki impor Anda Anda ingin memilih java.util.List dan org.hibernate.Query.

Menambahkan Tambahan Metode Helper

Anda sekarang akan menambahkan metode-metode penolong yang membuat query berdasarkan variabel input.     Anda dapat memeriksa permintaan dalam HQL query editor.

  1. Tambahkan metode berikut ini untuk mengambil daftar kategori menurut filmId.
    Kategori publik getCategoryByID (int filmId) (
        Daftar <Category> categoryList = null;
        try (
            org.hibernate.Transaction tx = session.beginTransaction ();
            Query q = session.createQuery ( "dari Kategori sebagai kategori mana category.categoryId di (pilih FilmCategory sebagai filmCat.category.categoryId dari filmCat mana filmCat.film.filmId = '" + filmId + "')");
            categoryList = (Daftar <Category>) q.list ();
    
        ) Catch (Exception e) (
            e.printStackTrace ();
        )
    
        kembali categoryList.get (0);
    )
  2. Tambahkan metode berikut ini untuk mengambil satu film yang menurut filmId.
    Film publik getFilmByID (int filmId) (
    
        Film film = null;
    
        try (
            org.hibernate.Transaction tx = session.beginTransaction ();
            Query q = session.createQuery ( "dari Film sebagai film di mana film.filmId =" + filmId);
            film = (Film) q.uniqueResult ();
        ) Catch (Exception e) (
            e.printStackTrace ();
        )
    
        kembali film;
    )
  3. Tambahkan metode berikut ini untuk mengambil bahasa film menurut LangID.
    public String getLangByID (int LangID) (
    
        Language language = null;
    
        try (
            org.hibernate.Transaction tx = session.beginTransaction ();
            Query q = session.createQuery ( "dari bahasa sebagai lang mana lang.languageId =" + LangID);
            language = (Bahasa) q.uniqueResult ();
        ) Catch (Exception e) (
            e.printStackTrace ();
        )
    
        kembali language.getName ();
    )
Kategori:Info Trik Java
%d blogger menyukai ini: