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

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

Скачать материал
Скачать материал "Hibernate, fundamentals. Part 1. Для студентов старших курсов университета"

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор школы

Описание презентации по отдельным слайдам:

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

    1 слайд

    Использование Hibernate Java Persistence

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

  • Hibernate — библиотека для языка программирования Java, предназначенная для р...

    2 слайд

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

  • 3 слайд

  • Step 1: Download the Hibernate 4.3.x : First of all you have to download the...

    4 слайд

    Step 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-3
   Download the Hibernate 4.3.x : First of all you have to download...

    5 слайд

    STEP 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


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

    6 слайд

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

  • )

    7 слайд

    )

  • )

    8 слайд

    )

  • Для просмотра базы данных
нужно установить SQL-developer
http://www.oracle.co...

    9 слайд

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

  • 10 слайд

  • STEP 4
Create model class

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

    11 слайд

    STEP 4
    Create model class

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

  • import org.hibernate.annotations.GenericGenerator;@Entity@Table(name="Stud...

    12 слайд

    import 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;
        }  
    }

  • Аннотации здесь используются для Mapping (сопоставление) Java классов с табли...

    13 слайд

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

  • Step 5
Create hibernate.cfg file - Create the configuration file of Hibernate...

    14 слайд

    Step 5
    Create hibernate.cfg file - Create the configuration file of Hibernate framework

    Теперь создадим главный конфигурационный файл hibernate.cfg.xml и помести его в папку bin нашего проекта. Из этого файла Hibernate будет брать всю необходимую ему информацию

  • 15 слайд

    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN“   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    <session-factory>
    <property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver</property>
    <property name="connection.url">
    jdbc:oracle:thin:@localhost:1521:MyDB</property>  
    <property name="connection.username">
    Your_Login</property>
    <property name="connection.password">
    Your_Password</property>
    <propertyname="connection.pool_size">
    10</property>
    <property name="dialect">
    org.hibernate.dialect.OracleDialect</property>
    <property name="show_sql">true</property>
    <property name="hbm2ddl.auto">
    update</property>
    <property name=
    "hibernate.connection.autocommit">false</property>
    <property name=
    "current_session_context_class">thread</property>
    <mapping class="logic.Student" />
    </session-factory>
    </hibernate-configuration>

  • Параметр &quot; hibernate.hbm2ddl.auto &quot; устанавливаем в значение “true” для того,...

    16 слайд

    Параметр " hibernate.hbm2ddl.auto " устанавливаем в значение “true” для того, чтобы объекты базы данных создавались автоматически на основе маппинга в java-hibernate проекте.

  • Step 6: Create the utility class for getting SessionFactory
Теперь создадим п...

    17 слайд

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

  • import org.hibernate.cfg.Configuration;public class HibernateUtil {    pri...

    18 слайд

    import 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;
        }
    }

  • Step 7: Write the code for testing the  Hibernate example
The Data Access Obj...

    19 слайд

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

  • package DAO;import java.sql.SQLException;import java.util.List;import lo...

    20 слайд

    package 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;//удалить студента
    }

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

    21 слайд

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

  • package DAO.Impl;import java.sql.SQLException;import java.util.ArrayList;...

    22 слайд

    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;
    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<Student> getAllStudents() throws SQLException {
                Session session = null;
                List<Student> studs = new ArrayList<Student>();
                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();
                    }
                }
          }  
    }

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

    23 слайд

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

  • package DAO;import DAO.Impl.StudentDAOImpl;public class Factory {     ...

    24 слайд

    package 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 main;imp...

    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<Student> 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("=============================");             
            }      
        }
    }

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

    26 слайд

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

  • 27 слайд

  • Успехов!

    28 слайд

    Успехов!

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Излагаются основы Hibernate и приводится пример его применения в Java-коде.

Hibernate значительно уменьшает время разработки приложений, работающих с базами данных, заботится о связи Java классов с таблицами базы данных (и типов данных Java в типы данных SQL), предоставляет средства для автоматического построения запросов и извлечения данных.

Использование javax.persistence аннотаций, позволяет встроить маппинг сущностей используемой системы хранения (в данном случае hibernate) непосредственно в программый код. Это снижает вероятность появления ошибок и теперь не требуется создавать десятки XML файлов маппинга объектов.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 097 материалов в базе

Скачать материал

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 26.01.2015 654
    • PPTX 1021 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Dudnik Oxana Antonovna. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Dudnik Oxana Antonovna
    Dudnik Oxana Antonovna
    • На сайте: 9 лет и 3 месяца
    • Подписчики: 1
    • Всего просмотров: 27350
    • Всего материалов: 37

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Секретарь-администратор

Секретарь-администратор (делопроизводитель)

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Использование компьютерных технологий в процессе обучения информатике в условиях реализации ФГОС

36 ч. — 144 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 140 человек из 44 регионов
  • Этот курс уже прошли 1 297 человек

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс профессиональной переподготовки

Информационные системы и технологии: теория и методика преподавания в профессиональном образовании

Преподаватель информационных систем и технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 13 человек

Мини-курс

Основы классической механики

3 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Педагогические аспекты работы с баснями Эзопа

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Галерейный бизнес: медиа, PR и cотрудничество

6 ч.

780 руб. 390 руб.
Подать заявку О курсе