`
woaiyingyu123
  • 浏览: 71159 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

(六)配置及用法之JPA

阅读更多
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&amp;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
分享到:
评论

相关推荐

    Struts2 Spring Jpa 配置测试

    3. **JPA配置**:JPA的配置主要涉及`persistence.xml`文件,它定义了持久化单元,包括数据源、JPA供应商(如Hibernate)、实体类的包名以及其他的持久化属性。同时,Spring需要配置JPA的`...

    jpa例子jpajpa

    2. **实体管理工厂(EntityManagerFactory)**: 这是创建和配置JPA的入口点,通过它我们可以获取到`EntityManager`实例。一般在应用启动时创建,然后在整个应用生命周期内复用。 3. **实体管理器(EntityManager)*...

    Spring + JPA + Hibernate配置

    通过上述步骤,你可以在Spring环境中顺利地集成和使用JPA及Hibernate,实现高效的数据持久化操作。记住,理解每个组件的作用以及它们如何协同工作是至关重要的,这样你才能灵活应对各种开发需求。

    struts2+jpa+spring2.5配置基础框架

    4. **JPA的实体配置**:每个实体类需要标注`@Entity`,属性上使用`@Id`标识主键,还可以使用其他注解如`@ManyToOne`、`@OneToMany`等定义关联关系。 5. **错误和异常处理**:配置Struts2的全局结果,处理可能出现的...

    Spring JPA 配置类包集合 方便大家使用

    5. **Query注解**:除了基本的Repository接口方法,Spring JPA还支持在方法名上使用@Query注解,允许直接写入SQL或HQL查询。此外,还有@CountQuery、@Modifying等注解,分别用于统计和更新操作。 6. **Jpa...

    Springboot中使用Druid+JPA

    3. 创建Druid配置类:创建一个@Configuration注解的类,并使用@Bean注解的方法返回DruidDataSource实例。 接下来,我们讨论JPA。JPA通过提供ORM框架,允许开发者使用面向对象的方式来操作数据库。Spring Data JPA是...

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    例如,可以创建一个`@SwitchDataSource`注解,并在方法上使用,根据注解的参数来决定使用哪个数据源。 **5. 测试与验证** 确保所有配置正确后,编写单元测试或集成测试以验证多数据源的配置是否正常工作。使用`@...

    JPA 配置文件

    ### JPA 配置文件与持久化概念解析 #### JPA 持久化:ORM技术的核心 在软件开发中,尤其是涉及数据库交互的应用场景,持久化层的设计至关重要。JPA(Java Persistence API)作为Java平台上的标准持久化规范,为...

    JPA大全之经典全集

    JPA的官方文档详细介绍了JPA的规范和实现,包括其核心概念、配置、实体管理、查询语言、事务管理以及性能优化等方面。文档通常分为两部分:JSR(Java Specification Requests)文档和API文档。JSR文档定义了JPA的...

    JPA一对一关系实例配置

    如果你使用的是Hibernate作为JPA实现,那么这些表结构会由Hibernate自动创建,前提是你的JPA配置允许Hibernate进行自动Schema更新。 在实际项目中,我们还需要配置JPA环境。这通常包括设置数据源、实体扫描路径、...

    使用springboot + JPA / MyBatis 实现多数据源动态切换

    在`springboot-multi-datasource-master`项目中,可以查看具体实现代码,包括数据源配置、路由类实现、Repository接口及Service层的使用。通过阅读和理解这些代码,有助于深入理解多数据源动态切换的原理和实践。 ...

    SSH2框架整合并使用JPA注解配置

    - 配置JPA的实体扫描路径,这样Spring才能找到并管理使用了JPA注解的实体类。 2. **JPA注解配置**: - `@Entity`:标记一个类为数据库表的映射,相当于Hibernate的`@Table`。 - `@Id`:标识一个字段为表的主键,...

    JPA中文解释,JPA的API

    标题中提到的"JPA中文解释"是指对于JPA的概念、原理、使用方法等进行了中文语言的详细解读,这对于中文环境下的开发者来说非常方便,能够更好地理解和应用JPA。JPA的核心理念是对象关系映射(ORM),它将Java对象...

    spring 使用 Jpa的笔记

    总结来说,本文档涵盖了Spring JPA的基础配置和使用方法,包括所需的依赖库、持久化配置文件`persistence.xml`的编写、实体类的定义以及实体间关系的映射。通过这些知识点的学习,可以更好地理解和掌握Spring JPA的...

    Spring2.5整合JPA

    4. **配置实体管理器工厂**:使用LocalContainerEntityManagerFactoryBean创建实体管理器工厂,设置数据源、JPA供应商配置、实体扫描路径等。 5. **配置事务管理**:Spring提供了PlatformTransactionManager接口,...

    持久层方案SpringDataJPA文件及配置

    - Repository接口:定义接口,继承JpaRepository,可以使用默认的CRUD方法,也可以添加自定义的查询方法。 - Service层:在Service层注入Repository,调用其方法进行数据操作。 - Controller层:在Controller层调用...

    jpa最基本最全配置的jar包

    以下是一些关于JPA配置和使用的知识点: 1. **配置JPA**: 配置JPA通常涉及在`persistence.xml`文件中指定持久化单元(Persistence Unit),其中包括数据库连接信息、持久化提供者、实体类等。例如: ```xml ...

    JPA 标注 JPA标签手册

    在使用TopLink JPA时,您可以使用注解配置JPA实体的行为。注解是一种简单、表达性强的在Java源代码上添加元数据的方法,这些元数据在编译时会被嵌入到对应的Java类文件中,由TopLink JPA在运行时解释以管理JPA行为。...

Global site tag (gtag.js) - Google Analytics