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)