1. 程式人生 > >Spring--12.spring整合jpa

Spring--12.spring整合jpa

參考部落格:http://www.cnblogs.com/crawl/p/7718741.html

Tomcat啟動走的是web.xml,單元測試走的是當前檔案,所以要測試思路就是啟動spring

1      Spring 整合 JPA

1.1  三種整合方式:

LocalEntityManagerFactoryBean:適用於那些僅使用 JPA進行資料訪問的專案,該 FactoryBean 將根據JPA PersistenceProvider 自動檢測配置檔案進行工作,一般從“META-INF/persistence.xml”讀取配置資訊,這種方式最簡單,但不能設定 Spring 中定義的DataSource,且不支援 Spring 管理的全域性事務

從JNDI中獲取:用於從 JavaEE 伺服器獲取指定的EntityManagerFactory,這種方式在進行 Spring 事務管理時一般要使用 JTA 事務管理

LocalContainerEntityManagerFactoryBean:適用於所有環境的FactoryBean,能全面控制 EntityManagerFactory 配置,如指定 Spring 定義的 DataSource 等等。

1.2  JPA 提供者的介面卡

<!-- 配置 JPA 提供商的介面卡. 可以通過內部 bean 的方式來配置 -->
      <property name="jpaVendorAdapter">
         <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
      </property> 

1.3  Jpa相關配置

<!-- 4.配置 JPA 的基本屬性. 例如 JPA 實現產品的屬性 -->
      <property name="jpaProperties">
         <props>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
         </props>
      </property>

 

1.4  JPA 使用的事務管理器

<!-- 配置 JPA 使用的事務管理器 -->
   <bean id="transactionManager"
      class="org.springframework.orm.jpa.JpaTransactionManager">
      <property name="entityManagerFactory" ref="entityManagerFactory"></property> 
   </bean>
  
   <!-- 配置支援基於註解是事務配置 -->
   <tx:annotation-driven transaction-manager="transactionManager"/> 

2      Demo檢視

2.1  applicationContext.xml

<!-- 配置自動掃描的包 -->
   <context:component-scan base-package="com.atguigu.jpa"></context:component-scan>
 
   <!-- 配置 C3P0 資料來源 -->
   <context:property-placeholder location="classpath:db.properties"/>
 
   <bean id="dataSource"
      class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <property name="user" value="${jdbc.user}"></property>
      <property name="password" value="${jdbc.password}"></property>
      <property name="driverClass" value="${jdbc.driverClass}"></property>
      <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> 
     
      <!-- 配置其他屬性 -->
   </bean>
  
   <!-- 配置EntityManagerFactory -->
   <bean id="entityManagerFactory"
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <!-- 1.注入資料來源 -->
      <property name="dataSource" ref="dataSource"></property>
     
      <!-- 2.配置 JPA 提供商的介面卡. 可以通過內部 bean 的方式來配置 -->
      <property name="jpaVendorAdapter">
         <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
      </property>
     
      <!-- 3.配置實體類所在的包 -->
      <property name="packagesToScan" value="com.atguigu.jpa.entities"></property>
     
      <!-- 4.配置 JPA 的基本屬性. 例如 JPA 實現產品的屬性 -->
      <property name="jpaProperties">
         <props>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
         </props>
      </property>
   </bean>
  
   <!-- 配置 JPA 使用的事務管理器 -->
   <bean id="transactionManager"
      class="org.springframework.orm.jpa.JpaTransactionManager">
      <property name="entityManagerFactory" ref="entityManagerFactory"></property> 
   </bean>
  
   <!-- 配置支援基於註解是事務配置 -->
   <tx:annotation-driven transaction-manager="transactionManager"/>

2.2  JPATest

public classJPATest {
  
   private ApplicationContext ctx = null;
   private PersonService personService = null;
  
   {
      ctx = newClassPathXmlApplicationContext("applicationContext.xml");
      personService = ctx.getBean(PersonService.class);
   }
  
   /**
    * 測試資料庫是否連通
    * @throws SQLException
    */
   @Test
   public void testDataSource() throws SQLException {
      DataSourcedataSource= ctx.getBean(DataSource.class);
      System.out.println(dataSource.getConnection());
   }
  
   @Test
   public void testPersonService(){
      Personp1 = new Person();
      p1.setAge(11);
      p1.setEmail("[email protected]");
      p1.setLastName("AA");
     
      Personp2 = new Person();
      p2.setAge(12);
      p2.setEmail("[email protected]");
      p2.setLastName("BB");
     
      System.out.println(personService.getClass().getName());
      personService.savePersons(p1, p2);
   }
}


相關推薦

Spring--12.spring整合jpa

參考部落格:http://www.cnblogs.com/crawl/p/7718741.html Tomcat啟動走的是web.xml,單元測試走的是當前檔案,所以要測試思路就是啟動spring 1      Spring 整合 JPA 1.1  三種整合方式: Lo

day39-Spring 12-Spring的JDBC模板:快速入門

pri 哪些 困難 ces 5.0 使用 只需要 common commons Spring AOP的關鍵是它的底層的原理和思想,配置和使用並不是十分困難.AOP本身就是一個思想,是面向對象的延伸,不是用來替換面向對象的,而是用來解決面向對象中的一些問題的.在最初的時候提出

Spring --12.Spring中AOP程式設計(XML方式)

1、AOP入門案例 1.1、建立工程並引入依賴 工程為com.day03 依賴如下: <!--依賴--> <dependencies> <dependency> <groupId>or

spring 12-Spring框架AOP深入配置

AOP深入配置可以實現以下功能: 前置通知的引數傳遞 返回通知 針對異常進行處理 1、定義業務層介面和子類 package cn.liang.service; public interface IMessageService { public boolean r

spring boot 系列之四:spring boot 整合JPA

rom prop pos output UNC actor href ali div 上一篇我們講了spring boot 整合JdbcTemplate來進行數據的持久化, 這篇我們來說下怎麽通過spring boot 整合JPA來實現數據的持久化。 一、代碼實現  修改

Spring Boot整合JPA、Redis和Swagger2

enc code extends art redis學習 and 小結 JD pip 好久沒有總結了,最近也一直在學習。今天就把spring boot與其它技術的整合做個小總結,主要是jpa、redis和swagger2。公司裏有用到這些,整合起來也很簡單。 首先,新建一個

Spring整合Jpa框架

package site.lx.dnf.entity; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import

spring、MVC整合spring-data-jpa

jar檔案 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId>

spring boot 整合 jpa (一) -- 之基礎配置

spring boot 整合 jpa (二) – 之資料操作 https://blog.csdn.net/qq_41463655/article/details/82939560 spring boot 整合 jpa (三) – 之表關係對映 https://blog.csdn.ne

spring boot 整合 jpa (三) -- 之表關係對映

spring boot 整合 jpa (一) – 之基礎配置 https://blog.csdn.net/qq_41463655/article/details/82939481 spring boot 整合 jpa (二) – 之資料操作 https://blog.csdn.net/q

spring boot 整合 jpa (二) -- 之資料操作

spring boot 整合 jpa (一) – 之基礎配置 https://blog.csdn.net/qq_41463655/article/details/82939481 spring boot 整合 jpa (三) – 之表關係對映 https://blog.csdn.net/

Spring Boot 系統之四:Spring Boot 整合JPA

上一篇我們講了Spring Boot 整合jbdcTemplate 來進行資料的持久化。 這篇我們來說下怎麼通過Spring Boot 整合JPA來實現資料的持久化。 一、程式碼實現 1、修改pom.xml,引入依賴。 <!-- 引入jpa 依賴 -->

hibernate+springmvc+spring+ spring Data +maven+(JPA的@Query註解)整合

1、pom.xml的jar包依賴配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

Spring Boot整合Spring MVC、SpringSpring Data JPA(Hibernate)

一句話總結:Spring Boot不是新的功能框架,而是為了簡化如SSH、SSM等等多個框架的搭建、整合及配置。使用Spring Boot 10分鐘搭建起Spring MVC、Spring、Spring Data JPA(Hibernate)基礎後臺架構。基本零配置,全註解。 步驟一: 使用Sprin

二十、Spring boot整合Jpa API

(一)新增依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-da

spring boot 整合 jpa (一)

先建立 springboot 專案 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:

《深入理解Spring Cloud與微服務構建》學習筆記(五)~SpringBoot 整合 JPA

JPA是一個數據持久化的類和方法的集合,目前java專案開發中提到的JPA一般是指用Hibernate的實現,因為在java的ORM框架中,只有Hibernate實現的最好。當前學習在SpringBoot專案中使用JPA,資料庫使用mysql。 一、新建一個SpringBo

十四、spring boot 2.x 整合 jpa 進階

本文主要針對jpa常見的用法進行演示講解,主要包括JPA常見的查詢、分頁查詢、HQL操作、SQL操作等幾個方面。 1、JPA支援的常用的查詢 /** * And查詢 等價於SQL中的and<br> */ List<

Spring boot整合jpa

本文使用使用者、部門、角色的關係來演示整合過程 引入依賴 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

Spring和maven整合mvc,jpa,mongodb,Hibernate等

小弟前一段時間在玩弄著Spring,後來發現Spring的那些專案是個好東西啊,特別是Spring的Data那一塊,使用起來是那麼水到渠成,不管底層資料庫是結構化的還是非結構化的(MongoDB,neo4j),用起來沒什麼區別。 所以,自己手動從頭到尾搭建了一個Spring