Maven 3 + Hibernate 3.6 + Пример Oracle 11g (сопоставление XML)
В этой статье мы покажем вам, как интегрироватьMaven3,Hibernate3.6 иOracle11g вместе. В конце этой статьи вы создадите проект Java с Maven и вставите запись в базу данных Oracle с помощью инфраструктуры Hibernate.
Инструменты и технологии, используемые в этой статье:
-
Maven 3.0.3
-
JDK 1.6.0_13
-
Hibernate 3.6.3.final
-
Oracle 11g
1. Создание таблицы
Сценарий Oracle SQL для создания таблицы «DBUSER» в базе данных.
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
2. Создать проект с Maven
Используйте Maven для создания стандартной структуры проекта.
mvn archetype:generate -DgroupId=com.example -DartifactId=HibernateExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Note
Более подробную информацию см. в этомHow to create a
Java project with Maven.
3. Maven для Eclipse IDE
Преобразуйте сгенерированный проект на основе Maven в проект Eclipse и импортируйте его в свою Eclipse IDE.
mvn eclipse:eclipse
4. Добавить Hibernate и Oracle Dependency
Обновите файлpom.xml
и добавьте все связанные зависимости.
-
Вам необходимо объявить «репозиторий JBoss» для последней версии jar-файла Hibernate и его зависимости.
-
Драйвер Oracle JDBC необходимо вручную установить в локальный репозиторий maven.
For Oracle JDBC Driver
Прочтите это руководство -How
to add Oracle JDBC driver in your Maven local repository
Файл: pom.xml
4.0.0 com.example.common HibernateExample jar 1.0 HibernateExample http://maven.apache.org JBoss repository http://repository.jboss.org/nexus/content/groups/public/ junit junit 4.8.2 test com.oracle ojdbc6 11.2.0 org.hibernate hibernate-core 3.6.3.Final javassist javassist 3.12.1.GA
5. Файл сопоставления Hibernate (hbm) + модель
Создайте файл сопоставления XML Hibernate и класс модели для таблицы «DBUSER».
- Создайте следующий файл «DBUser.hbm.xml
» и поместите его в «src/main/resources/com/example/user».
Note
Создайте папку, если она не существует.
Файл: DBUser.hbm.xml
- Создайте файл «DBUser.java
» и поместите его в «src/main/java/com/example/user/»
Файл: DBUser.java
package com.example.user; import java.util.Date; /** * Dbuser generated by hbm2java */ public class DBUser implements java.io.Serializable { private int userId; private String username; private String createdBy; private Date createdDate; public DBUser() { } public DBUser(int userId, String username, String createdBy, Date createdDate) { this.userId = userId; this.username = username; this.createdBy = createdBy; this.createdDate = createdDate; } public int getUserId() { return this.userId; } public void setUserId(int userId) { this.userId = userId; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getCreatedBy() { return this.createdBy; } public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } public Date getCreatedDate() { return this.createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } }
Note
Вам может быть интересно прочитать эту статью -Eclipse
Hibernate tools to generate Hibernate mapping files automatically.
6. Файл конфигурации Hibernate
Создайте файл конфигурации Hibernate «hibernate.cfg.xml» и поместите его в корень папки ресурсов «src/main/resources/hibernate.cfg.xml» и введите данные своей базы данных Oracle. И сопоставьте с приведенным выше файлом сопоставления Hibernate - «DBUser.hbm.xml».
Файл: hibernate.cfg.xml
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:MKYONG example password org.hibernate.dialect.Oracle10gDialect MKYONG true
7. Hibernate Utility
Создайте классический класс «HibernateUtil.java
», чтобы позаботиться об управлении сеансом Hibernate. И поставьте под «src/main/java/com/example/util/HibernateUtil.java»
Файл: HibernateUtil.java
package com.example.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } }
8. Обзор окончательной структуры проекта
Просмотрите его, и ваша структура проекта должна выглядеть следующим образом:
9. Кодирование гибернации
Обновите «App.java
», чтобы запрограммировать Hibernate для сохранения фиктивной записи пользователя в таблице «DBUSER».
Файл: App.java
package com.example; import java.util.Date; import org.hibernate.Session; import com.example.util.HibernateUtil; import com.example.user.DBUser; public class App { public static void main(String[] args) { System.out.println("Maven + Hibernate + Oracle"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); DBUser user = new DBUser(); user.setUserId(100); user.setUsername("superman"); user.setCreatedBy("system"); user.setCreatedDate(new Date()); session.save(user); session.getTransaction().commit(); } }
10. Запустить его
Запустите ваш «App.java
» и посмотрите результат в представлении консоли Eclipse:
Готово.
Скачать -Maven3-Hibernate3.6-Oracle11-Example.zip (8KB)