Хибернация (част 2): конфигуриране и използване
Хибридна конфигурация в Java приложение
- Инсталирайте JDK 1.4 или JDK 1.5.
- Изтеглете версия 3 от hibernate.org
- Отнесете се към бункерите за хибернация в класа.
- Определете конфигурационния файл за хибернация (hibernate.cfg.xml):
Този файл трябва да бъде поставен в директорията, съдържаща изходния код на приложението JAVA (препоръчително).
По-долу е даден пример на файл hibernate.cfg.xml с необходимите коментари:
PUBLIC "- // DTD // Hibernate / Hibernate Configuration
"[//Hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
JDBC: Oracle: тънък: @dbServer: 1521: db
oracle.jdbc.OracleDriver
org.hibernate.dialect.Oracle9Dialect
dbusername
dbpassword
вярно
вярно
вярно
1
фалшив
50
вярно
org.hibernate.connection.C3P0ConnectionProvider
3
180
100
10
1000
org.hibernate.cache.NoCacheProvider
Определете файловете за картографиране на hbm:
Това е набор от файлове, които правят картографиране между базата данни на обектите и асоциираните JAVA обекти.
Пълните пътища на всички файлове за картографиране на hbm са описани в конфигурационния файл (hibernate.cfg.xml).
Използване на хибернация в Java приложение:
В този пример ще използваме конфигурационния файл за хибернация:
- Декларация на таблицата (Oracle)
CREATE TABLE CLIENT
(
ID_Client NUMBER (10) НЕ NULL,
TITRE VARCHAR2 (10),
NOM VARCHAR2 (30),
ОСЪЗНАВА НОМЕР (19, 5),
CA NUMBER (19, 5),
CONSTRAINT PK_CLIENT PRIMARY KEY (CLIENT_ID)
);
- Декларация за класове JAVA
/ ** конструкт
обществен клиент () {
}
/ ** Конструкция ** /
публичен клиент (дълъг клиент Ид, Титър на низове, Номен ред, BigDecimal remise, BigDecimal ca)
{
this.idClient = idClient;
this.titre = титър;
this.name = име;
this.remise = премахване;
this.ca = ca;
}
/ ** Les getters et setters ** /
обществен Long getIdClient ()
{
return this.clientId;
}
public void setIdClient (дълъг клиент ИД) {
this.clientId = clientId;
}
public String getTitre () {
връщане на този.
}
public void setTitre (Титър на редове) {
this.titre = титър;
}
public String getNom () {
return this.nom;
}
public void setNom (Номен ред)
this.nom = nom;
}
публичен BigDecimal getRemise () {
връщане на това.
}
public void setRemise (премахване на BigDecimal) {
this.remise = премахване;
}
публичен BigDecimal getCa () {
return this.ca;
}
public void setCa (BigDecimal ca)
this.ca = ca;
}
}
- Файлове за картографиране на Client.hbm.xml:
"- // DTM 3.0 Hibernate / Hibernate Mapping
"//hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
име = "[Nom_Package] .Client" маса = "клиент" име на етикета = "Клиент" > @ hibernate.class маса = "клиент" име = "idClient" тип = "java.lang.Long" Колона = "ID_CLIENT" > Id client @ hibernate.id Генератор клас = "целеви" тип = "java.lang.Long" Колона = "CLIENT_ID" име = "титър" тип = "java.lang.String" Колона = "титър" дължина = "10" > Наименование на клиента @ hibernate.property Колона = "титър" дължина = "10" име = "име" тип = "java.lang.String" Колона = "NAME" дължина = "30" > Nom du client @ hibernate.property Колона = "NAME" дължина = "30" име = "отстъпване" тип = "java.math.BigDecimal" Колона = "Remise" дължина = "19" > Преустановете клиента @ hibernate.property Колона = "Remise" дължина = "19" име = "ва" тип = "java.math.BigDecimal" Колона = "СА" дължина = "19" > Chiffre Affaire Първичният ключ е дефиниран в маркера: в нашия пример той се основава на последователност. Възможно е да се дефинира комбиниран ключ, използвайки маркера: композитен ID> Примерът по-долу използва метода saveOrUpdate () на сесията за хибернация. org.hibernate.Session sess = sessFact.openSession (); Клиент c = нов Клиент (); c.setName ( "John"); p.setTitre ( "Г-н"); Транзакция tx = sess.beginTransaction (); sess.saveOrUpdate (р); tx.commit (); sess.close ();