Презентация, доклад на тему Hibernate, fundamentals. Part 1. Для студентов старших курсов университета

Содержание

Hibernate — библиотека для языка программирования Java — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Она представляет

Слайд 1Использование Hibernate Java Persistence
Для студентов
старших курсов университетов
Ст.преподаватель Дудник О.А.

Использование Hibernate Java Persistence Для студентов старших курсов университетовСт.преподаватель Дудник О.А.

Слайд 2
Hibernate — библиотека для языка программирования Java — библиотека для языка программирования Java,

предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Она представляет собой свободное программное обеспечение — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Она представляет собой свободное программное обеспечение с открытым исходным кодом (open source) — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Она представляет собой свободное программное обеспечение с открытым исходным кодом (open source), распространяемое на условиях GNU Lesser General Public License.
Hibernate — библиотека для языка программирования Java — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения

Слайд 4Step 1: Download the Hibernate 4.3.x : First of all you

have to download the Hibernate 4.3.x latest release.
Step 2: Create database and table - Next you have to create database and tables
Step 3: Add libraries: You should create project and add the Hibernate libraries files.
You will also have to add the dataBase’s JDK driver jar file.
Step 4: Create model class
Step 5: Create hibernate.cfg file - Create the configuration file of Hibernate framework
Step 6: Create the utility class for getting SessionFactory
Step 7: Write the code for testing the Hibernate example - finally test the application.
Step 1: Download the Hibernate 4.3.x : First of all you have to download the Hibernate 4.3.x

Слайд 5STEP 1-3
Download the Hibernate 4.3.x : First of all

you have to download the Hibernate 4.3.x latest release

Create database and table - Next you have to create database and tables


STEP 1-3  Download the Hibernate 4.3.x : First of all you have to download the Hibernate

Слайд 6Давайте напишем небольшое приложение, использующее библиотеку Hibernate для хранения и обработки

таблицы СУБД Oracle. Для начала нам нужно скачать Hibernate.
http://hibernate.org/orm/downloads/
Также нам понадобиться скачать и установить СУБД Oracle.
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index-092322.html
Давайте напишем небольшое приложение, использующее библиотеку Hibernate для хранения и обработки таблицы СУБД Oracle. Для начала нам

Слайд 9Для просмотра базы данных
нужно установить SQL-developer
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
, который работает только с JDK

1.6(нужно установить)
Для просмотра базы данныхнужно установить SQL-developerhttp://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html, который работает только с JDK 1.6(нужно установить)

Слайд 11STEP 4
Create model class

Опишем наш класс-сущность, который будем хранить в БД(в

пакете logic):
STEP 4Create model classОпишем наш класс-сущность, который будем хранить в БД(в пакете logic):

Слайд 12import org.hibernate.annotations.GenericGenerator; @Entity @Table(name="Student") public class Student {         private Long id;

        private String name;         private Long age;         public Student(){         name = null;     }         public Student(Student s){         name = s.getName();     }           @Id     @GeneratedValue(generator="increment")     @GenericGenerator(name="increment", strategy = "increment")     @Column(name="id")     public Long getId() {         return id;     }         @Column(name="name")     public String getName(){         return name;     }         @Column(name="age")     public Long getAge(){         return age;     }         public void setId(Long i){         id = i;         }         public void setName(String s){         name = s;     }           public void setAge(Long l){         age = l;     }   }
import org.hibernate.annotations.GenericGenerator;  @Entity @Table(name=

Слайд 13Аннотации здесь используются для Mapping (сопоставление) Java классов с таблицами базы

данных. Проще говоря для того, чтобы Hibernate знал, что данный класс является сущностью, то есть объекты данного класса мы будем хранить в базе данных. Использованные здесь аннотации имеют следующий смысл:
@Entity — указывает на то, что данный класс является сущностью.
@Table — задает имя таблицы, в которой будут храниться объекты класса
@Id — обозначает поле id
@GeneratedValue и @GenericGenerator — указывает на то, как будет генерироваться id (у нас — по возрастанию)
@Column — обозначает имя колонки, соответствующей данному полю.
Аннотации здесь используются для Mapping (сопоставление) Java классов с таблицами базы данных. Проще говоря для того, чтобы

Слайд 14Step 5
Create hibernate.cfg file - Create the configuration file of Hibernate

framework

Теперь создадим главный конфигурационный файл hibernate.cfg.xml и помести его в папку bin нашего проекта. Из этого файла Hibernate будет брать всю необходимую ему информацию
Step 5Create hibernate.cfg file - Create the configuration file of Hibernate frameworkТеперь создадим главный конфигурационный файл hibernate.cfg.xml

Слайд 15

name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:MyDB
 
Your_Login

Your_Password

10
org.hibernate.dialect.OracleDialect
true
update
"hibernate.connection.autocommit">false "current_session_context_class">thread

Слайд 16Параметр " hibernate.hbm2ddl.auto " устанавливаем в значение “true” для того, чтобы

объекты базы данных создавались автоматически на основе маппинга в java-hibernate проекте.
Параметр

Слайд 17Step 6: Create the utility class for getting SessionFactory
Теперь создадим пакет

util, а в нем класс HibernateUtil, который будет отвечать за обработку данного xml файла и установление соединения с нашей базой данных:
package util;
Step 6: Create the utility class for getting SessionFactoryТеперь создадим пакет util, а в нем класс HibernateUtil,

Слайд 18import org.hibernate.cfg.Configuration; public class HibernateUtil {     private static SessionFactory sessionFactory =

null;         static {         try {                 sessionFactory = new Configuration().configure().buildSessionFactory();         } catch (Exception e) {               e.printStackTrace();         }     }     public static SessionFactory getSessionFactory() {         return sessionFactory;     } }
import org.hibernate.cfg.Configuration;  public class HibernateUtil {     private static SessionFactory sessionFactory = null;    

Слайд 19Step 7: Write the code for testing the Hibernate example
The Data

Access Object (DAO) pattern
Для класса-сущности, определим интерфейс StudentDAO из пакета DAO, содержащий набор необходимых методов:
Step 7: Write the code for testing the Hibernate exampleThe Data Access Object (DAO) patternДля класса-сущности, определим

Слайд 20package DAO; import java.sql.SQLException; import java.util.List; import logic.Student; public interface StudentDAO {     public void

addStudent(Student student) throws SQLException;   //добавить студента     public void updateStudent(Student student) throws SQLException;//обновить студента     public Student getStudentById(Long id) throws SQLException;    //получить стедента по id     public List getAllStudents() throws SQLException;              //получить всех студентов     public void deleteStudent(Student student) throws SQLException;//удалить студента }
package DAO;  import java.sql.SQLException; import java.util.List;  import logic.Student;  public interface StudentDAO {    

Слайд 21Теперь определим реализацию этого интерфейса в классе SudentDAOImpl в пакете DAO.Impl:


Теперь определим реализацию этого интерфейса в классе SudentDAOImpl в пакете DAO.Impl:

Слайд 22package DAO.Impl; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.swing.JOptionPane; import org.hibernate.Session; import util.HibernateUtil; import DAO.StudentDAO; import logic.Student; public class

StudentDAOImpl implements StudentDAO
{  public void addStudent(Student stud) throws SQLException {    Session session = null;      try {                 session = HibernateUtil.getSessionFactory().openSession();                 session.beginTransaction();                 session.save(stud);                 session.getTransaction().commit();             } catch (Exception e) {                 JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);             } finally {                 if (session != null && session.isOpen()) {                     session.close();                 }             }       }       public void updateStudent(Student stud) throws SQLException {             Session session = null;             try {                 session = HibernateUtil.getSessionFactory().openSession();                 session.beginTransaction();                 session.update(stud);                 session.getTransaction().commit();             } catch (Exception e) {                 JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);             } finally {                 if (session != null && session.isOpen()) {                     session.close();                 }             }       }       public Student getStudentById(Long id) throws SQLException {             Session session = null;             Student stud = null;             try {                 session = HibernateUtil.getSessionFactory().openSession();                 stud = (Student) session.load(Student.class, id);             } catch (Exception e) {                 JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);             } finally {                 if (session != null && session.isOpen()) {                     session.close();                 }             }             return stud;       }       public List getAllStudents() throws SQLException {             Session session = null;             List studs = new ArrayList();             try {                 session = HibernateUtil.getSessionFactory().openSession();                 studs = session.createCriteria(Student.class).list();             } catch (Exception e) {                 JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);             } finally {                 if (session != null && session.isOpen()) {                     session.close();                 }             }             return studs;       }       public void deleteStudent(Student stud) throws SQLException {             Session session = null;             try {                 session = HibernateUtil.getSessionFactory().openSession();                 session.beginTransaction(); session.load(stud, id); session.delete(stud);
                session.getTransaction().commit();             } catch (Exception e) {                 JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);             } finally {                 if (session != null && session.isOpen()) {                     session.close();                 }             }       }   }
package DAO.Impl;  import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.swing.JOptionPane; import org.hibernate.Session; import util.HibernateUtil; import DAO.StudentDAO;

Слайд 23Давайте создадим класс Factory в пакете DAO, к которому будем обращаться

за нашими реализациями DAO, от которых и будем вызывать необходимые нам методы:
Давайте создадим класс Factory в пакете DAO, к которому будем обращаться за нашими реализациями DAO, от которых

Слайд 24package DAO; import DAO.Impl.StudentDAOImpl; public class Factory {            

private static StudentDAO studentDAO = null;       private static Factory instance = null;       public static synchronized Factory getInstance(){             if (instance == null){               instance = new Factory();             }             return instance;       }       public StudentDAO getStudentDAO(){             if (studentDAO == null){               studentDAO = new StudentDAOImpl();             }             return studentDAO;       }   }
package DAO;  import DAO.Impl.StudentDAOImpl;  public class Factory {             

Слайд 25Ну вот и все! Осталось только посмотреть как это работает:
package

main; import java.sql.SQLException; import java.util.List; import logic.Student; import DAO.Factory; public class Main {     public static void main(String[] args) throws SQLException {         //Создадим двух студентов         Student s1 = new Student();         Student s2 = new Student();         //Проинициализируем их         s1.setName("Ivanov Ivan");         s1.setAge(21l);         s2.setName("Petrova Alisa");         s2.setAge(24l);         //Сохраним их в бд, id будут //сгенерированы автоматически         Factory.getInstance().getStudentDAO().addStudent(s1);         Factory.getInstance().getStudentDAO().addStudent(s2);               //Выведем всех студентов из бд         List studs = Factory.getInstance().getStudentDAO().getAllStudents();         System.out.println("========Все студенты=========");         for(int i = 0; i < studs.size(); ++i) {                 System.out.println("Имя студента : " + studs.get(i).getName() + ", Возраст : " + studs.get(i).getAge() +",  id : " + studs.get(i).getId());                 System.out.println("=============================");                      }           } }
Ну вот и все! Осталось только посмотреть как это работает: package main; import java.sql.SQLException; import java.util.List; import

Слайд 26Итак,
общая схема того, что нужно знать
о Hibernate
изображена ниже.

Итак,общая схема того, что нужно знать о Hibernateизображена ниже.

Слайд 28Успехов!

Успехов!

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть