SpringData 简介

优点

简化数据库访问,减少数据访问层的开发量。

支持的数据库类型

  1. 支持 NoSQL 存储,如 MongoDB,Redis
  2. 支持关系型数据存储技术,如 jdbc,jpa

HelloWorld

Spring 配置

配置 Spring 基本信息

<!-- 配置要扫描的包 -->
<context:component-scan base-package="com.solverpeng.sd"/>
<!-- 配置数据源 -->
<context:property-placeholder location="db.properties"/>
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource"><property name="user" value="${jdbc.user}"/><property name="password" value="${jdbc.password}"/><property name="driverClass" value="${jdbc.driverClass}"/><property name="jdbcUrl" value="${jdbc.url}"/>
</bean>

配置 Spring 整合 JPA

<!-- 配置 JPA 的 EntityManagerFactory -->
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"><property name="dataSource" ref="dataSource"/><property name="jpaVendorAdapter"><bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/></property><!-- 替代 JPA 的 persistence.xml 扫描包下添加 @Entity 的实体类 --><property name="packagesToScan" value="com.solverpeng.sd.bean"/><property name="jpaProperties"><props><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 class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"><property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean><!-- 配置注解支持 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

配置 Spring 整合 SpringData

<!-- 配置 SpringData -->
<jpa:repositories base-package="com.solverpeng.sd.repositories" entity-manager-factory-ref="entityManagerFactory"/>

声明持久层的接口

声明的持久层接口需要继承自 org.springframework.data.repository.Repository 接口,或者是该接口的子接口。

在接口中声明方法

public interface PersonRepository extends Repository<Person, Integer>{Person getByPersonName(String personName);
}

测试

@org.junit.Test
public void testRepository() {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");PersonRepository personRepository = ctx.getBean(PersonRepository.class);String personName = "aa";Person person = personRepository.getByPersonName(personName);System.out.println(person);
}

测试出现的问题以及解决方案

问题:src-resolve: 无法将名称 'repository:auditing-attributes' 解析为 'attribute group' 组件
原因:spring-data-jpa-1.3.3.jarspring-data-commons-core-1.1.0.jar 不兼容导致。
解决:将 spring-data-jpa-1.3.3.jar 更换为 spring-data-jpa-1.0.0.jar

总结

SpringData 是用了比 JPA 更加简洁的方式简化了开发,因为是建立在 JPA 的规范上,所以可以支持绝大多数的 ORM 框架,
从 HelloWorld 中可以看出,主要要掌握的是如何在它接口中声明方法,声明该方法的规则是什么。同时本篇文章介绍了如何在 Spring 环境下集成 SpringData,以及出现的一些问题。

转载于:https://www.cnblogs.com/solverpeng/p/5994459.html

SpringData —— HelloWorld相关推荐

  1. 详细介绍springData

    1.什么是SpringData? Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库.Map-Reduce 框架.云数据服务等等:另外也包含对 ...

  2. Spring Data JPA 2. HelloWorld

    Spring Data JPA HelloWorld 使用 Spring Data JPA 进行持久层开发需要的四个步骤: 配置 Spring 整合 JPA 在 Spring 配置文件中配置 Spri ...

  3. SpringData入门

    一.SpringData概述 SpringData:Spring的一个子项目,用于简化数据库访问,支持NoSql和关系型数据库,其主要目标是使数据库的访问变得方便快捷. SpringData项目所支持 ...

  4. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  5. CentOS Docker安装配置部署Golang web helloworld

    目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...

  6. 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】

    博客目录(阅读时间:10分钟) 一.win10 0.系统环境 1. win10配置golang环境 ①下载相关软件 ②创建gowork工作空间 ③配置环境变量(GOPATH+PATH) ④验证环境配置 ...

  7. 带你搭一个SpringBoot+SpringData JPA的环境

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...

  8. idea java jni 调试_IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇

    JNI(Java Native Interface),出于学习JNI的目的,为了能够更方便快速地运行程序.本文的是在IDEA中进行,而不在AndroidStudio,这样能够对NDK的工作过程有个更深 ...

  9. Apache模块开发helloworld无错版

    环境:CentOS 5.4 第一步:安装Apache的apxs 首先来介绍下apache的一个工具apxs.apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程 ...

最新文章

  1. 虚拟机CENTOS7下 安装8.0版本MySQL MySQL主从配置详细~
  2. 全球芯片行业现状分析:大家都在依赖美国 未来如何破局?
  3. 《剑指Offer》题一~题十
  4. 串行总线---差分互连(差分线)之共模、奇模、偶模
  5. SpringBoot_定制banner
  6. 组态王怎么做超级曲线_鱼怎么做才好吃?试试这个方法,吃着过瘾,还超级下饭!(收藏)...
  7. 最全的 eclipse web 项目目录结构
  8. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波11 - 直方图处理 - 使用直方图统计量增强图像
  9. 电脑无法打开特定网页_监理检测网校电脑微信无法打开公路试验检测视频课程的处理方法...
  10. 学习设计模式——工厂方法模式
  11. 算法 摩尔投票算法(图解例题)
  12. windows下安装php5.5的redis扩展
  13. thinkphp 常用SQL执行语句总结
  14. python用什么来写模块-史上最详细的python模块讲解
  15. Spring学习总结(2)- AOP
  16. Airflow 重跑dag中部分失败的任务
  17. 大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?
  18. 工程经济—技术方案不确定性分析
  19. jq如何改变html页面,jq同一页面内容切换
  20. 下载IEEE期刊Latex模板步骤

热门文章

  1. stm32锯齿波_工程师实战:基于STM32的波形发生器设计
  2. kafka权威指南_Kafka-分区、片段、偏移量
  3. python arma_Python ARIMA
  4. 网络营销外包立足用户角度完成企业网站网络营销外包优化
  5. 网站建设设计的基本事项需了解!
  6. 如何让网站建设实际效果比之前更好?
  7. 自然水体辐射特性与数值模拟 pdf_【技术·航天】定量评估贡献 精准决策未来 ——气象卫星数据在数值预报系统中贡献的定量评估...
  8. php编写函数6,编写自己的PHP扩展函数
  9. https 不会被中间人攻击——因为中间人即使拿到了数据,也是加密的
  10. https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...