Spring Data之Hello World
1. 概述
- SpringData : 注意目标是使数据库的访问变得方便快捷;支持NoSQL和关系数据存储;
- 支持NoSQL存储:
- MongoDB(文档数据库)
- Neo4j(图形数据库)
- Redis(键/值存储)
- Hbase(列族数据库)
 
- 关系数据库存储:
- JDBC
- JPA
 
 
- 支持NoSQL存储:
2. Spring Data 入门程序 Hello World
2.1 使用 Spring Data JPA 进行持久层开发需要的四个步骤:
- 配置Spring整合JPA;
- 在Spring配置中配置Spring Data,让Spring为声明的接口创建代理对象;
- 声明持久层的接口,该接口继承Repository,Repository是一个标记型接口,它不包含任何方法,如果必要,
 Spring Data 可实现Repository其他子接口,其中定义了一些常用的增删改查,以及分页相关的方法;
- 在接口中声明需要的方法;

// Spring 配置文件 applicationContext.xml
<!-- 1. 配置数据源 -->
    <context:property-placeholder location="classpath:db.properties"/>
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
	</bean>
<!-- 2. 配置JPA 的 EntityManagerFactory -->
    <bean id="entityManagerFactory"
		  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		  <property name="dataSource" ref="dataSource"></property>
		  <property name="jpaVendorAdapter">
		 	<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
		  </property>
		  <property name="packagesToScan" value="com.noodles.springdata"></property>
		  <property name="jpaProperties">
		  	<props>
		  		<!-- 生成的数据表的列的映射策略 -->
		  		<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
		  		<!-- hibernate 基本属性 -->
		  		<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>
<!-- 3. 配置事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.orm.jpa.JpaTransactionManager">
          <property name="entityManagerFactory" ref="entityManagerFactory"></property>
    </bean>
<!-- 4. 配置支持注解的事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 5. 配置SpringData -->
    <!-- 加入JPA 的命名空间-->
	<!-- base-package: 扫描Repository Bean 所在的package -->
	<jpa:repositories base-package="com.noodles.springdata"
		entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>
// db.properties
jdbc.username=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///jpa
// com.noodles.springdata
// Person 类
@Table(name="JPA_PERSONS")
@Entity
public class Person{
    private Integer id;
    private String lastName;
    private String email;
    private Date birth;
    @GeneratedValue
    @Id
    privte Integer getId(){
        return id;
    }
    private void SetId(Integer id){
        this.id = id;
    }
    ...(省略getter和setter)
}
// PersonRepository.java(接口)
public interface PersonRepository extends Repository<Person, Integer>{
    Person getByLastName(String lastName);
}
// 测试类com.noodles.springdata.test
// SpringDataTest
public class SpringDataTest{
    private ApplicationContext ctx = null;
    {
        ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    }
    @Test
    public void testHelloWorld(){
        PersonRepository pr = ctx.getBean(PersonRepository.class);
        Person person = pr.getByLastName("李四");
        System.out.println(person);
    }
}
参考资料:
Spring Data之Hello World的更多相关文章
- 快速搭建springmvc+spring data jpa工程
		一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ... 
- spring boot(五):spring data jpa的使用
		在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spr ... 
- MongoDB分组汇总操作,及Spring data mongo的实现
		转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ... 
- 转:使用 Spring Data JPA 简化 JPA 开发
		从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ... 
- 一步步学习 Spring Data 系列之JPA(一)
		引入: Spring Data是SpringSource基金会下的一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服 ... 
- 一步步学习 Spring Data 系列之JPA(二)
		继上一篇文章对Spring Data JPA更深( )一步剖析. 上一篇只是简单的介绍了Spring Data JPA的简单使用,而往往在项目中这一点功能并不能满足我们的需求.这是当然的,在业务中查询 ... 
- 深入浅出学Spring Data JPA
		第一章:Spring Data JPA入门 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map ... 
- 记录分享公司Spring data相关配置
		起因 公司Spring Data相关的配置还是有点意思的,不过蛮复杂的...XML很多...我不太喜欢强行记住....所以我打算记录一下配置的大致思路和结构,以后可能会有用.... 总体结构 总体结构 ... 
- spring data jpa 调用存储过程
		网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1in ... 
- Spring Data JPA 学习记录1 -- 单向1:N关联的一些问题
		开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问 ... 
随机推荐
- 0063 MyBatis入门示例
			MyBatis是一个"半自动化"的ORM框架,ORM即Object/Relation Mapping,对象关系映射,是面向对象编程语言跟关系型数据库的桥梁,将编程语言对Java实体 ... 
- 安装CentOS版本的yum(转载)
			安装CentOS版本的yum 下载源:http://mirrors.163.com/centos/6/os/i386/Packages/ 材料准备: python-iniparse-0.3.1-2.1 ... 
- IBM MQ 2035 或 2013认证错误的解决方法
			第一种方法: ALTER CHL(SYSTEM.BKR.CONFIG) CHLTYPE(SVRCONN) ALTER CHL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN ... 
- webservice文件上传下载
			使用DataHandler实现webservice的文件上传下载 服务端代码: package com.hello.weChat.controller; import javax.activation ... 
- 从文件/文件流的头字节中得到mime信息
			在写网络爬虫的时候,需要根据链接来获取文件类型,将内容正确存储.之前我都是根据链接的后缀来判断的,比如: http://img12.360buyimg.com/da/20120330/88_31_Zy ... 
- EasyUI 创建Tree
			tree可以被从标记创建.easyui tree应该定义在ul元素中.无序列表ul元素提供了基本tree结构.每一个li元素被产生一个tree节点,子ul元素产生父tree节点.例子: < ... 
- EasyUI Pagination 分页分页布局定义 显示按钮布局
			//分页布局定义.该属性自版本 1.3.5 起可用.//布局项目包括一个或多个下列值://1.list:页面尺寸列表.//2.sep:页面按钮分割.//3.first:第一个按钮.//4.prev:前 ... 
- [oracle] update语句卡住问题
			执行update语句的时候发现执行半天不成功 update main_order set order_source = '2', order_status = '2' 查询哪些对象被锁 select ... 
- Servlet中Request的getAttribute getParameter 区别
			1.从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据. request.getParameter()方法返回Str ... 
- Unity的 Stats 窗体, Batched、SetPass、Draw Call 等
			孙广东 2015.8.12 在Game View 中的右上角有一个统计数据 Stats button.当按下button时.覆盖窗体显示,可用于优化性能的实时渲染统计信息. 确切的统计数据显示生成目 ... 
