当前位置: 首页 > news >正文

spring-data-jpa

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 JPA 技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!spring data jpa 让我们解脱了 DAO 层的操作,基本上所有 CRUD 都可以依赖于它来实现

具体使用:(springboot)

1、配置pom文件

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

2、application.yml

spring:
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: update

#create:每次加载Hibernate时都会删除上一次生成的表(包括数据),然后重新生成新表,即使两次没有任何修改也会这样执行。适用于每次执行单测前清空数据库的场景。

#create-drop:每次加载Hibernate时都会生成表,但当SessionFactory关闭时,所生成的表将自动删除。

#update:最常用的属性值,第一次加载Hibernate时创建数据表(前提是需要先有数据库),以后加载Hibernate时不会删除上一次生成的表,会根据实体更新,只新增字段,不会删除字段(即使实体中已经删除)。

#validate:每次加载Hibernate时都会验证数据表结构,只会和已经存在的数据表进行比较,根据model修改表结构,但不会创建新表。

3、Repository

respository创建:

  ①可以继承Repository类,该类只是一个借口类,并没有方法

  ②可以继承CrudRepository

  ③可以加成JpaRepository

  ④继承PagingAndSortingRepository,可以进行分页查询,只需要方法的最后一个参数位置假如Pageable即可

package com.nxz.testboot.jpa;


import com.nxz.testboot.domain.User;
import org.springframework.data.repository.PagingAndSortingRepository;

import java.util.List;

public interface UserRespository extends PagingAndSortingRepository<User, Long> {

    List<User> findUsersByUsernameNotNull();

}

4、Entity

package com.nxz.testboot.domain;

import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Data
@Entity(name = "user")
public class BscUser {

@Id
@GeneratedValue
private long id;
@Column(name = "username")
private String username;
@Column(name = "sex")
private String sex;
@Column(name = "age")
private long age;
@Column(name = "password")
private String password;

}

5、执行UserRespository 中的find方法  即可查到相关数据

 

源码解析:http://www.cnblogs.com/bodhitree/p/9468585.html

转载于:https://www.cnblogs.com/nxzblogs/p/10508016.html

相关文章:

  • react-hooks 实现简单的评论list
  • Proxy-Go v7.2 发布,一个端口一键开启 http(s)\ss\socks 服务
  • Cordova + Vue 实现点击两次退出应用
  • 解密敏捷自动化测试
  • JavaScript到底是面向对象还是基于对象?
  • JDBC的CRUD操作之PreparedStatement的保存操作
  • (译)计算距离、方位和更多经纬度之间的点
  • 4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置
  • 苹果尝试转型手机可能不再是核心业务
  • selenium 之 Css Selector
  • 保守的国美再一次进击社交电商,前途未卜?
  • 自动化办公:python 操作Excel
  • 基于房源的画像分析
  • 防止视频资源被下载
  • 第一周 IP通信基础学习回顾
  • docker-consul
  • GitUp, 你不可错过的秀外慧中的git工具
  • Map集合、散列表、红黑树介绍
  • vagrant 添加本地 box 安装 laravel homestead
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 解决iview多表头动态更改列元素发生的错误
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 问题之ssh中Host key verification failed的解决
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (1)(1.9) MSP (version 4.2)
  • (NSDate) 时间 (time )比较
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (初研) Sentence-embedding fine-tune notebook
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十)T检验-第一部分
  • (循环依赖问题)学习spring的第九天
  • (一) springboot详细介绍
  • (转)可以带来幸福的一本书
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .htaccess 强制https 单独排除某个目录
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 发展历程
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET处理HTTP请求
  • .net连接MySQL的方法
  • @Builder用法
  • [acm算法学习] 后缀数组SA
  • [Apio2012]dispatching 左偏树
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [C++进阶篇]STL中vector的使用
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [Golang]K-V存储引擎的学习 从零实现 (RoseDB mini版本)
  • [hdu2196]Computer树的直径
  • [hive] sql中distinct的用法和注意事项
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]