JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。本文简要介绍一下JPA的配置和用法。简要说明~如果不足之处,请留言,谢谢!
需要的包是什么,我也不大清楚,反正把SSH2整合在一起的包放进去就对啦~~呵呵~
本文有的xml使用了//注解方式,那样是错误的。在这里只是为了方便观看。。
(1)web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<filter-class>
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
(2)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:context="http://www.springframework.org/schema/context"
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.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:component-scan base-package="com.xxx" />
<!--JPA管理工厂配置-->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="jpa"></property>//name是固定的,jpa是数据源的名字
</bean>
<!-- JPA事务管理 -->
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- 注解方式声明注解,在需要注明事务的类名或方法加上 @Transactional注解 -->
<tx:annotation-driven transaction-manager="txManager" />
//JPA事务管理的做法和Spring的都一样,所以不做过多的概述。
//注意:如果用Spring管理JPA,那么事务配置是必要的(我们最好在业务层Service配置事务),否则JPA对数据库的操作是无效的,因为我们没有显式地提供事务的提交。
</beans>
(3)配置persistence.xml(在src下建立META-INF,放在其中):
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
<persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">//数据源配置
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="123"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&characterEncoding=UTF-8"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
(4)JPA的应用:
public class userDaoImpl{
@PersistenceContext//自动匹配EntityManager
protected EntityManager entityManager;
//getter and setter方法略
public void save(Object object)
{
entityManager.persist(object);
}
public void delete(Object object)
{
entityManager.remove(object);
}
public void update(Object object)
{
entityManager.merge(object);
}
public List<Object> findByHql(String hql)
{
entityManager.createQuery(hql);
}
//其他方法省略了~~方法的封装自己慢慢琢磨。这里只是简单介绍一个配置和基础的用法
}
(5)测试:
//如果只是想简单的进行测试
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
EntityManager entityManager= emf.createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(type);
entityManager.getTransaction().commit();
//如果要使用Spring管理的测试的话,老老实实这样做把~
ApplicationContext act = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");//applicationContext.xml在WEB-INF目录下
// ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");applicationContext.xml在src目录下
UserServiceImpl userServiceImpl = (UserServiceImpl)act.getBean("userServiceImpl")// 括号内是Bean的ID名
//之后就是你的测试内容了~~
如果不足之处,请留言,谢谢。
总结:
(1)主要配置过程:web.xml+applicationContext.xml+persistence.xml
分享到:
相关推荐
3. **JPA配置**:JPA的配置主要涉及`persistence.xml`文件,它定义了持久化单元,包括数据源、JPA供应商(如Hibernate)、实体类的包名以及其他的持久化属性。同时,Spring需要配置JPA的`...
2. **实体管理工厂(EntityManagerFactory)**: 这是创建和配置JPA的入口点,通过它我们可以获取到`EntityManager`实例。一般在应用启动时创建,然后在整个应用生命周期内复用。 3. **实体管理器(EntityManager)*...
通过上述步骤,你可以在Spring环境中顺利地集成和使用JPA及Hibernate,实现高效的数据持久化操作。记住,理解每个组件的作用以及它们如何协同工作是至关重要的,这样你才能灵活应对各种开发需求。
4. **JPA的实体配置**:每个实体类需要标注`@Entity`,属性上使用`@Id`标识主键,还可以使用其他注解如`@ManyToOne`、`@OneToMany`等定义关联关系。 5. **错误和异常处理**:配置Struts2的全局结果,处理可能出现的...
5. **Query注解**:除了基本的Repository接口方法,Spring JPA还支持在方法名上使用@Query注解,允许直接写入SQL或HQL查询。此外,还有@CountQuery、@Modifying等注解,分别用于统计和更新操作。 6. **Jpa...
3. 创建Druid配置类:创建一个@Configuration注解的类,并使用@Bean注解的方法返回DruidDataSource实例。 接下来,我们讨论JPA。JPA通过提供ORM框架,允许开发者使用面向对象的方式来操作数据库。Spring Data JPA是...
例如,可以创建一个`@SwitchDataSource`注解,并在方法上使用,根据注解的参数来决定使用哪个数据源。 **5. 测试与验证** 确保所有配置正确后,编写单元测试或集成测试以验证多数据源的配置是否正常工作。使用`@...
### JPA 配置文件与持久化概念解析 #### JPA 持久化:ORM技术的核心 在软件开发中,尤其是涉及数据库交互的应用场景,持久化层的设计至关重要。JPA(Java Persistence API)作为Java平台上的标准持久化规范,为...
JPA的官方文档详细介绍了JPA的规范和实现,包括其核心概念、配置、实体管理、查询语言、事务管理以及性能优化等方面。文档通常分为两部分:JSR(Java Specification Requests)文档和API文档。JSR文档定义了JPA的...
如果你使用的是Hibernate作为JPA实现,那么这些表结构会由Hibernate自动创建,前提是你的JPA配置允许Hibernate进行自动Schema更新。 在实际项目中,我们还需要配置JPA环境。这通常包括设置数据源、实体扫描路径、...
在`springboot-multi-datasource-master`项目中,可以查看具体实现代码,包括数据源配置、路由类实现、Repository接口及Service层的使用。通过阅读和理解这些代码,有助于深入理解多数据源动态切换的原理和实践。 ...
- 配置JPA的实体扫描路径,这样Spring才能找到并管理使用了JPA注解的实体类。 2. **JPA注解配置**: - `@Entity`:标记一个类为数据库表的映射,相当于Hibernate的`@Table`。 - `@Id`:标识一个字段为表的主键,...
标题中提到的"JPA中文解释"是指对于JPA的概念、原理、使用方法等进行了中文语言的详细解读,这对于中文环境下的开发者来说非常方便,能够更好地理解和应用JPA。JPA的核心理念是对象关系映射(ORM),它将Java对象...
总结来说,本文档涵盖了Spring JPA的基础配置和使用方法,包括所需的依赖库、持久化配置文件`persistence.xml`的编写、实体类的定义以及实体间关系的映射。通过这些知识点的学习,可以更好地理解和掌握Spring JPA的...
4. **配置实体管理器工厂**:使用LocalContainerEntityManagerFactoryBean创建实体管理器工厂,设置数据源、JPA供应商配置、实体扫描路径等。 5. **配置事务管理**:Spring提供了PlatformTransactionManager接口,...
- Repository接口:定义接口,继承JpaRepository,可以使用默认的CRUD方法,也可以添加自定义的查询方法。 - Service层:在Service层注入Repository,调用其方法进行数据操作。 - Controller层:在Controller层调用...
以下是一些关于JPA配置和使用的知识点: 1. **配置JPA**: 配置JPA通常涉及在`persistence.xml`文件中指定持久化单元(Persistence Unit),其中包括数据库连接信息、持久化提供者、实体类等。例如: ```xml ...
在使用TopLink JPA时,您可以使用注解配置JPA实体的行为。注解是一种简单、表达性强的在Java源代码上添加元数据的方法,这些元数据在编译时会被嵌入到对应的Java类文件中,由TopLink JPA在运行时解释以管理JPA行为。...