SpringBoot的数据访问
2017-07-31 23:28
519 查看
SpringBoot的数据访问主要介绍的是Spring Data JPA和Spring Data REST
继承 JpaRepository接口意味着我们默认已经有了下面的数据访问操作方法
从代码可以看出,Spring Data JPA的关键字能代替一些简单的查询。如上Like ,And,findBy等。还有如下的一些关键字
接下来在repository文件中只需这样定义即可:
Spring Data JPA,Spring Data MongoDB,Spring Data Neo4j,Spring Data GemFire,Spring Data Cassandra的repository自动转化为Rest服务。
Spring Data JPA
定义数据访问层
使用Spring Data JPA建立数据访问层非常简单,只需定义一个继承了JpaRepository的接口即可,定义如下public interface PersonRepository extends JpaRepository<Person,Long>
继承 JpaRepository接口意味着我们默认已经有了下面的数据访问操作方法
List<T> findAll(); List<T> findAll(Sort sort); List<T> findAll(Iterable<ID> ids); <S extends T> List<S> save(Iterable<S> entities); void flush(); <S extends T> saveAndFlush(S entity); void deleteInBatch(Iterable<T> entities); void deleteAllInBatch(); T getOne(ID id);
配置使用Spring Data JPA
在Spring环境中,使用Spring Data JPA可通过@EnableJpaRepositories注解来开启Spring Data JPA的支持。定义查询方法
常规查询:根据属性名来定义查询方法
//通过名字相等查询,参数为name //相当于JPQL:select p from Person p where p.name = ? List<Person> findByName(String name); //通过名字like查询,参数为name //相当于JPQL:select p from Person p where p.name like ? List<Person> findByNameLike(String name); //通过名字和地址查询,参数为name,和Address //相当于JPQL:select p from Person p where p.name like ? List<Person> findByNameAndAddress(String name,String Address);
从代码可以看出,Spring Data JPA的关键字能代替一些简单的查询。如上Like ,And,findBy等。还有如下的一些关键字
限制结果数量
数量结果使用top/first关键字来实现的。例如List<Person> findFirst10ByName
使用JPA的NamedQuery查询
如下在某个实体上定义NamedQuery方法@Entity @NamedQuery(name="Person.withNameAndAddressNamedQuery",query = "select p from Person p where p.name=?1 and p.address=?2") public class Person
接下来在repository文件中只需这样定义即可:
List<Person> withNameAndAddressNamedQuery(String name,String address);
使用@Query查询
使用@Query查询的时候是直接将@Query语句定义到Repository文件中的。如:@Query("select p from Person p where p.name=:name and p.address=:address") Person withNameAndAddressQuery(@Param("name")String name,@Param("address")String address);
Spring Data REST
Spring Data JPA是基于Spring Data的Repository之上,可以将repository自动输出为Rest资源。目前Spring Data REST支持将Spring Data JPA,Spring Data MongoDB,Spring Data Neo4j,Spring Data GemFire,Spring Data Cassandra的repository自动转化为Rest服务。
SpringMVC中使用Spring Data REST
SpringMVC中使用Spring Data REST非常简单,Spring 的配置是定义在RepositoryRestMvcConfiguration(在Spring的包中)配置累已经配置好了。我们可以通过继承此类或者直接在自己的配置类上@Import此配置类。SpringBoot中使用Spring Data REST
SpringBoot中使用Spring Data REST就更简单了。只需要在pom.xml文件中添加spring-boot-starter-data-rest依赖就可以了。无需其他的配置。Spring Boot通过在application.properties中配置以“spring.data.rest”为前缀的属性来配置RepositoryRestConfiguration。例如spring.data.rest.base-path= /api
相关文章推荐
- SpringBoot开发详解(十) -- 使用JPA访问数据库下篇及使用Page进行数据分页
- springboot【10】数据访问之多数据源配置使用
- springboot【13】数据访问之整合Mybatis
- springboot【11】数据访问之NoSQL数据库redis
- SpringBoot21-springboot的数据访问-引入Docker
- springboot【9】数据访问之Spring-data-jpa
- 【转】一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的DNS服务器呢!如果不是,当我访问我的这个域名的时候,电脑怎么知道去找到我注册的这一家的DNS服务器呢,谁告诉他的呢?
- asp.net2.0数据访问(1)-入门-创建数据访问层
- 数据访问公共类(带事务的处理)
- 数据的存储与访问
- Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇
- Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)
- HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效
- [原创]Enterprise Library4.1学习笔记(一)数据访问
- Access 通用数据访问类
- android学习笔记6--------------数据的存储与访问(1)
- VC++/ADO数据访问远程数据库
- 数据访问接口体系及数据对象模型探讨--[附录]
- 访问实体的几何数据时,抛出 SEHException错误(只有Release版出现)
- 如何解析android访问webservice返回的SoapObject数据(可用)