看Spring Data如何簡化數據操作
時間:2019-11-03 04:42 來源:百觀網

Spring Data 概述


Spring Data


用于簡化數據庫訪問,支持NoSQL 和 關系數據存儲,其主要目標是使數據庫的訪問變得方便快捷。SpringData 項目所支持 NoSQL 存儲:MongoDB (文檔數據庫)Neo4j(圖形數據庫)Redis(鍵/值存儲)Hbase(列族數據庫)SpringData 項目所支持的關系數據存儲技術:JDBCJPA


Spring Data JPA

JPA Spring Data : 致力于減少數據訪問層 (DAO) 的開發量. 開發者唯一要做的,就只是聲明持久層的接口,其他都交給 Spring Data JPA 來幫你完成!


開發步驟

配置 Spring 整合 JPA


在 Spring 配置文件中配置 Spring Data,讓 Spring 為聲明的接口創建代理對象,配置了 <jpa:repositories> 后,Spring 初始化容器時將會掃描 base-package 指定的包目錄及其子目錄,為繼承 Repository 或其子接口的接口創建代理對象,并將代理對象注冊為 Spring Bean,業務層便可以通過 Spring 自動封裝的特性來直接使用該對象。


聲明持久層的接口,該接口繼承 Repository,Repository 是一個標記型接口,它不包含任何方法,如必要,Spring Data 可實現 Repository 其他子接口,其中定義了一些常用的增刪改查,以及分頁相關的方法。


在接口中聲明需要的方法,Spring Data 將根據給定的策略來為其生成實現代碼。


搭建環境

導包:


antlr-2.7.7.jarc3p0-0.9.2.1.jarcom.springsource.net.sf.cglib-2.2.0.jarcom.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.aspectj.weaver-1.6.8.RELEASE.jarcommons-logging-1.1.3.jardom4j-1.6.1.jarhamcrest-core-1.3.jarhibernate-c3p0-4.2.4.Final.jarhibernate-commons-annotations-4.0.2.Final.jarhibernate-core-4.2.4.Final.jarhibernate-entitymanager-4.2.4.Final.jarhibernate-jpa-2.0-api-1.0.1.Final.jarjavassist-3.15.0-GA.jarjboss-logging-3.1.0.GA.jarjboss-transaction-api_1.1_spec-1.0.1.Final.jarjunit-4.12.jarmchange-commons-java-0.2.3.4.jarmysql-connector-java-5.1.7-bin.jarslf4j-api-1.6.1.jarspring-aop-4.0.0.RELEASE.jarspring-aspects-4.0.0.RELEASE.jarspring-beans-4.0.0.RELEASE.jarspring-context-4.0.0.RELEASE.jarspring-core-4.0.0.RELEASE.jarspring-data-commons-1.6.2.RELEASE.jarspring-data-jpa-1.4.2.RELEASE.jarspring-expression-4.0.0.RELEASE.jarspring-jdbc-4.0.0.RELEASE.jarspring-orm-4.0.0.RELEASE.jarspring-tx-4.0.0.RELEASE.jarspring-web-4.0.0.RELEASE.jarspring-webmvc-4.0.0.RELEASE.jar


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:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="com.kernel.spring.data"/> <!--配置數據源--> <context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"/> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--配置JPA的EntityManagerFactory--> <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> <property name="packagesToScan" value="com.kernel.spring.data"/> <property name="jpaProperties"> <props> <!--生成的數據表的映射策略--> <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> <!--生成的數據表的列的映射策略--> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <!--配置事務管理器--> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <!--配置支持注解的事務--> <tx:annotation-driven transaction-manager="transactionManager"/> <!--配置Spring Data--> <jpa:repositories base-package="com.kernel.spring.data" entity-manager-factory-ref="entityManagerFactory"/> </beans>復制代碼 Repository 接口

轉載本站原創,請注明來源:百觀網-百姓觀察網

圖文來源網絡,如有侵權請立即與我們聯系,我們會在7天之內及時處理,管理員郵箱:[email protected]

新聞排行榜
大家都在看
熱門標簽
國家互聯網信息辦 監督管理 運營單位:北京思圓行方文化傳媒有限公司
通用網址:www.ywjdqv.icu m.baiguanw.cn(手機版)
Copyright ? 2011-2020 百姓觀察網. 版權所有 未經協議禁止轉載具有版權的文章
投稿郵箱:[email protected]
交換友情鏈接QQ:378822888
京ICP備15038816號-1京公網安備 11010602130036號
离线看小说也能赚钱的软件