`
typot
  • 浏览: 42295 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring JPA 配置

阅读更多
库表:

JAVA EE 5.0

Hibernate 3.2 core

Hibernate 3.2 Annotation

Spring 2.0 Core

Spring 2.0 ORM/DAO/Hibarnate3.0

mysql jar

spring-aop.jar

aopalliance.jar



Persion 类

package jpa;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.*;
@Entity
public class Person implements Serializable{
@Id
@GeneratedValue
private Integer id;

private String lastName;

private String firstName;

public String getFirstName() {
  return firstName;
}

public void setFirstName(String firstName) {
  this.firstName = firstName;
}

public String getLastName() {
  return lastName;
}

public void setLastName(String lastName) {
  this.lastName = lastName;
}

public Integer getId() {
  return id;
}

public void setId(Integer id) {
  this.id = id;
}
}




PersionService 接口

package service;

import java.util.List;

import jpa.Person;

public interface PersonService {
public List<Person> findAll();

public void save(Person person);

public void remove(int id);

public Person find(int id);
}




PersionServiceImpl 实现

package service;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import jpa.Person;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class PersonServiceImpl implements PersonService {
private EntityManager em;

@PersistenceContext
public void setEntityManager(EntityManager em) {
  this.em = em;
}

@SuppressWarnings("unchecked")
public List<Person> findAll() {
  Query query = getEntityManager().createQuery("select p FROM Person p");
  return query.getResultList();
}

public void save(Person person) {
  if (person.getId() == null) {
   // new
   em.persist(person);
  } else {
   // update
   em.merge(person);
  }
}

public void remove(int id) {
  Person person = find(id);
  if (person != null) {
   em.remove(person);
  }
}

private EntityManager getEntityManager() {
  return em;
}

public Person find(int id) {
  return em.find(Person.class, id);
}
}


web.xml 增加一下内容

<listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>



WEB-INF/下面的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean
  class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
 
<bean id="personService"
  class="service.PersonServiceImpl" />
 
<bean id="entityManagerFactory"
  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="jpaVendorAdapter">
   <bean
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="database" value="MYSQL" />
    <property name="showSql" value="true" />
    <property name="generateDdl" value="true"></property>

//自动建表
   </bean>
  </property>
</bean>

<bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost/test" />
  <property name="username" value="root" />
  <property name="password" value="1" />
</bean>

<bean id="transactionManager"
  class="org.springframework.orm.jpa.JpaTransactionManager">
  <property name="entityManagerFactory"
   ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />

</beans>



src下面建个META-INF文件夹,下面建个persistence.xml

<persistence 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/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="punit"></persistence-unit>
</persistence>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics