您的位置:首页 > 编程语言 > Java开发

SpringBoot的数据访问

2017-07-31 23:28 519 查看
SpringBoot的数据访问主要介绍的是Spring Data JPA和Spring Data 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐