库表:
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>
分享到:
相关推荐
3. **JPA配置**:JPA的配置主要涉及`persistence.xml`文件,它定义了持久化单元,包括数据源、JPA供应商(如Hibernate)、实体类的包名以及其他的持久化属性。同时,Spring需要配置JPA的`...
Spring JPA,全称为Spring Data JPA,是Spring框架的一部分...这个“Spring JPA 配置类包集合”可能是为了方便开发者快速集成和配置Spring JPA项目,包含了一些常用的配置文件和实用工具类,有助于快速搭建和调试项目。
在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...
8. ** Transactions**:Spring Data JPA 使用 Spring 的事务管理支持,可以方便地配置事务边界,确保数据操作的一致性。 9. **JPA Querydsl Support**:Spring Data JPA 还支持 Querydsl,这是一个强大的类型安全的...
2. 配置文件(如`applicationContext.xml`或使用Java配置类)将设置数据源、JPA配置、DispatcherServlet配置、视图解析器等。 3. 实体类(Entity)将对应数据库表,用于持久化数据。 4. Repository接口将继承自...
- **启用JPA**:在Spring配置类中,通过@EnableJpaRepositories开启JPA支持,并指定Repository接口所在包。 4. **主要注解介绍** - `@Entity`:标记实体类,表示该类将被映射到数据库表。 - `@Table`:指定实体...
至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...
Spring Boot结合JPA(Java Persistence API)和JdbcTemplate,为开发者提供了灵活且强大的多数据源配置能力。本示例将详细介绍如何在Spring Boot项目中实现这样的配置,以支持不同类型的数据库。 首先,我们要理解...
总结起来,配置Spring+JPA与BoneCP数据源涉及的关键知识点包括:Spring框架、JPA、BoneCP连接池、数据库驱动、依赖管理、Spring配置、实体类、Repository接口以及Spring Boot的启动配置。理解并熟练掌握这些知识点,...
在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...
Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过Spring Data JPA和Java Persistence API(JPA)实现。 Spring注解是Spring框架中的一大特色,它极大...
标题“Spring + JPA + Hibernate配置”涉及到的是Java开发中常用的三个框架——Spring、Java Persistence API (JPA) 和Hibernate的集成与配置。这是一份关于如何将这些框架结合使用的教程或参考资料,可能包含了实现...
总结来说,配置Spring、Spring MVC和JPA涉及多个XML文件,包括Spring的bean定义、Spring MVC的调度配置以及JPA的数据源和实体配置。理解并正确配置这些元素对于构建基于Java的Web应用至关重要,因为它们定义了组件...
3. **配置Repository**:Spring Data JPA提供了一种基于接口的Repository编程模型。我们只需要定义一个接口,继承`JpaRepository`,就可以自动获得CRUD操作的方法。 ```java public interface UserRepository ...
采用hibernate 4.3.6,spring 4.0.6 ,实现jpa配置,简单易懂明了。压缩文件中包含jpa依赖的hibernate包,如果下载者希望运行,需要自己写实体类。压缩包中含有精简的配置。
Spring Data JPA是Spring框架的一个模块,提供了对JPA的高级支持,包括自动配置、查询生成和仓库抽象层,使得数据库操作更加便捷。 Spring Security是一个功能强大的安全框架,用于保护基于Spring的应用程序。它...
Spring JPA可以通过配置文件或Java配置来集成Hibernate。使用Hibernate作为JPA提供者,我们可以利用其丰富的查询语言HQL(Hibernate Query Language)和Criteria API。 4. **JPA的其他特性:** - `@OneToOne`和`@...