spring data学习笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

准备利用闲暇的碎片时间研究一下spring data的应用,因此可能会分多次进行更新。官网地址:https://spring.io/projects/spring-data

spring data的部分常用子集

spring data commons :包含spring data的核心基础库。

spring data jdbc : spring data对jdbc支持的库。

spring data jdbc ext :支持特定数据库的标准JDBC扩展,包括支持Oracle RAC快速连接故障转移、AQ JMS支持和支持使用一些高级数据类型。

spring data jpa :spring data对jpa支持的类库。

spring data redis :通过简单配置就能轻松访问Redis的类库。

spring data jdbc

基于CrudRepository的增删改查。

基于注解的查询。

mybatis支持。

id生成器。

支持事件驱动。

核心接口CrudRepository

public interface CrudRepository<T, ID> extends Repository<T, ID> {

  <S extends T> S save(S entity);  //保存entity到数据库    

  Optional<T> findById(ID primaryKey); //跟据id查寻entity

  Iterable<T> findAll(); //查询所有entity 

  long count(); //统计计数                       

  void delete(T entity); //删除指定的entity              

  boolean existsById(ID primaryKey); //跟据id查询是否存在  

  // … 还有很多方法在此不列举了.
}

继承该接口后,spring data 会跟据自定义的方法名自动转化成sql。如:

interface UserRepository extends CrudRepository<User, Long> {
  long countByLastname(String lastname); //开发人员自定义此方法后,spring data会自动转化成sql:"select count(1) from user where lastname=:lastname"

  long deleteByLastname(String lastname); //自定义此方法后,执行即可删除数据库中的指定数据

  List<User> removeByLastname(String lastname); //自定义此方法后,执行即可删除数据库中的指定数据
}

分页排序接口PagingAndSortingReposity

public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {

  Iterable<T> findAll(Sort sort);

  Page<T> findAll(Pageable pageable);
}

例如,查询前20条数据,可以这么写:

PagingAndSortingRepository<User, Long> repository = // … 获取实体类
Page<User> users = repository.findAll(PageRequest.of(1, 20));

一、在pom文件中添加依赖:

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-jpa</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-releasetrain</artifactId>
				<version>Lovelace-SR8</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值