..
Nu ska vi se hur man skapar en ORM lager med Hibernate 3 och JPA 2 (för en korrekt förståelse av den här lektionen är det förutsätts att läsaren har grundläggande kunskaper om datakälla och driften av Hibernate och JPA).
Antag att vi har en DB MySQL installerat på vår maskin, låt oss först definiera våra applicationContext.xml en datakälla som ansluter till vår DB:
<- Data Source -> <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" /> </ Bean>När vi skapar en datakälla skapas för församlingen persistens enhet finns i filen META-INF/persistence.xml:
<? Xml version = "1.0" encoding = "UTF-8"?> <Persistens 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" version = "2.0"> <persistence-unit name="pu" transaction-type="RESOURCE_LOCAL" /> </ Persistens>På denna punkt är vi redo att integrera med Hibernate och JPA:
<-! Församlingen och 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" /> </ Bean>Utan denna vår creaimo EntityManagerFactory som ger oss möjlighet att injicera DAO i vår EntityManger:
<-! FACTORY MANAGER enhet -> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="myDataSource" /> <property name="persistenceUnitName" value="pu" /> <property name="jpaVendorAdapter" ref="jpaVendorAdapter" /> </ Bean>Entity exempel ska vi nu skapa en bil:
it.mrwebmaster.hibernate paket;
import java.util.Date;
javax.persistence.Column import;
javax.persistence.Entity import;
javax.persistence.GeneratedValue import;
javax.persistence.Id import;
javax.persistence.PersistenceUnit import;
@ Entity
@ PersistenceUnit (unitName = "kan")
public class Bil {
@ Åsidosätt
public String toString () {
return "Bil [id =" + id + "name =" + namn + ", year =" + år + "]";
}
@ Id
@ GeneratedValue
privata sträng-ID;
@ Kolumn
private String namn;
@ Kolumn
privata Datum år;
offentliga Integer getId () {
retur-id;
}
public String getName () {
återvända namn;
}
offentliga Datum getYear () {
återkommer år;
}
public void setId (Integer id) {
this.id = id;
}
public void setName (String namn) {
this.name = namn;
}
public void setYear (Datum år) {
this.year = år;
}
}
Vår enhet har bara tre kolumner: Id, Namn och år, där ID-kolumn är vår primära nyckel som kommer att genereras automatiskt viloläge.
<-! JPA ANTECKNING -> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />gör det onödigt att ange inom uthållighet enheten i listan över enheter i vår ansökan.
| |
Linux (kurs)
Komplett av öppen källkod-system. Från 49 €. |
| |
PHP (kurs)
Fullständig kurs för att skapa dynamiska webbplatser. Från 49 €. |
| |
Ruby och Ruby on Rails (kurs)
Skapa program och webbapplikationer med Ruby och RoR. Från 39 €. |