..
Теперь давайте посмотрим, как создать слой с помощью ORM Hibernate 3 и JPA 2 (для правильного понимания этого урока, то предполагается, что читатель имеет базовые знания об источнике данных и работы Hibernate и JPA).
Пусть у нас есть БД MySQL установлен на нашей машине, сначала давайте определим наши applicationContext.xml источника данных, которое подключается к нашим БД:
<! - Источник данных -> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mrweb" /> <property name="username" value="mrweb" /> <property name="password" value="s3cret" /> </ Бин>Как только мы создаем источник данных, созданный для JPA единицы сохранения в файле META-INF/persistence.xml:
<? Xml версия = "1.0" кодирования = "UTF-8"?> <Сохранение XMLNS = "http://java.sun.com/xml/ns/persistence" XMLNS: XSI = "http://www.w3.org/2001/XMLSchema-instance" XSI: schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" Версия = "2.0"> <persistence-unit name="pu" transaction-type="RESOURCE_LOCAL" /> </ Сохранение>На данный момент мы готовы к интеграции с Hibernate и JPA:
<! - JPA и Hibernate -> <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="MYSQL" /> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> </ Бин>Без этого наша creaimo EntityManagerFactory, которая позволит нам внедрить DAO в нашу EntityManger:
<! - ENTITY директора завода -> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="myDataSource" /> <property name="persistenceUnitName" value="pu" /> <property name="jpaVendorAdapter" ref="jpaVendorAdapter" /> </ Бин>Entity Например, мы создаем сейчас автомобиль:
it.mrwebmaster.hibernate пакет;
импорт java.util.Date;
javax.persistence.Column импорта;
javax.persistence.Entity импорта;
javax.persistence.GeneratedValue импорта;
javax.persistence.Id импорта;
javax.persistence.PersistenceUnit импорта;
@ Entity
@ PersistenceUnit (unitName = "может")
общественные автомобилей класса {
@ Override
общественных ToString String () {
возвращение "автомобилей [ID =" + ID + "имя =" + имя + ", год =" + год + "]";
}
@ Id
@ GeneratedValue
частные идентификатор String;
@ Column
частное имя String;
@ Column
частные год Дата;
общественное целое GetID () {
возвращение идентификатора;
}
общественных деЬЫате String () {
возвращение имени;
}
общественных GetYear Date () {
возвращение год;
}
общественного недействительными SETID (Integer ID) {
this.id = ID;
}
общественных зеЬЫате недействительным (String имя) {
this.name = имя;
}
общественных setYear недействительными (дата год) {
this.year = год;
}
}
Наше предприятие имеет только три столбца: Id, Name, и год, где Id колонке нашего первичного ключа, который будет сгенерирован автоматически Hibernate.
<! - JPA АННОТАЦИЯ -> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />избавляет от необходимости указать, в пределах единицы сохранения, список юридических лиц в нашем приложении.
| |
Linux (курс)
Полное руководство по открытым исходным кодом системы. От 49 €. |
| |
PHP (курс)
Полный курс для создания динамических веб-сайтов. От 49 €. |
| |
Руби и Ruby On Rails (курс)
Создание программного обеспечения и веб-приложений с Рубином и RoR. С 39 €. |