Spring data JPA常用命令

这篇具有很好参考价值的文章主要介绍了Spring data JPA常用命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介 

Spring Data JPA是Spring框架的一部分,它提供了一个简化的方式来与关系型数据库进行交互。JPA代表Java持久化API,它是Java EE规范中定义的一种对象关系映射(ORM)标准。Spring Data JPA在JPA的基础上提供了更高级的抽象,使得开发人员能够更轻松地进行数据库操作。

使用Spring Data JPA,您可以通过定义实体类和Repository接口来执行CRUD操作和自定义查询。Repository接口提供了一组常用的方法,如保存、查找、删除等,而无需编写具体的实现。Spring Data JPA会根据方法的命名约定自动生成查询,并将查询结果映射到相应的实体类中。

此外,Spring Data JPA还提供了一些功能强大的特性。您可以通过注解和查询注解来定义一对多、多对一和多对多等关联关系。您还可以使用分页和排序等功能来处理大量的数据。另外,通过使用@Query注解,您可以编写自定义的查询语句。

Spring Data JPA支持各种关系型数据库,包括MySQL、PostgreSQL、Oracle等。它还可以与其他Spring项目(如Spring Boot)无缝集成,使得开发和配置变得更加简单和一致。可以通过简化了数据库层的操作,提高开发效率并降低样板代码的编写量。

总而言之,Spring Data JPA是一个强大而灵活的工具,使得与关系型数据库进行交互变得更加简单和高效。它可以帮助您快速开发功能强大的Java应用程序,并减少与数据库相关的繁琐工作。

 


基本步骤

当您使用Spring Data JPA时,它将为您提供一种简化数据库访问的方法。它通过自动生成查询和基本的CRUD操作来减少编写大量样板代码的工作量。下面是使用Spring Data JPA的一些基本步骤:

添加依赖:在您的项目中,您需要添加Spring Data JPA的依赖。您可以在项目的构建文件(如pom.xml或build.gradle)中添加适当的依赖项。

配置Maven依赖的命令如下:

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

 

配置数据源:您需要配置一个数据源,以使Spring能够连接到数据库。您可以在应用程序的配置文件(如application.properties或application.yml)中指定数据库的连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/db_name
spring.datasource.username=username
spring.datasource.password=password

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.generate-ddl=true

 创建实体类:创建代表数据库表的实体类。每个实体类将映射到数据库中的一张表,并且每个实体类的属性将映射到表中的列。

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

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    private int age;
    
    // 省略构造函数、getter和setter方法
}

创建Repository接口:创建一个继承自JpaRepository或其他Spring Data提供的Repository接口的接口。这个接口将提供基本的CRUD操作,以及其他自定义的查询方法。

  1. 使用注解:可以使用注解来自定义Repository接口的行为。例如,使用@Query注解可以定义自定义的查询方法。

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // 这里可以定义自定义查询方法
}

自动注入Repository:在需要访问数据库的地方,可以使用@Autowired或@Inject等注解将Repository接口自动注入到您的类中。

使用Repository方法:使用Repository接口中提供的方法来进行数据库操作。例如,可以使用save()方法来插入或更新数据,使用findById()方法来查找数据等等。

执行查询:Spring Data JPA将根据方法的命名约定自动生成查询,您也可以使用@Query注解来定义自己的查询。执行查询时,Spring Data JPA将帮助您将查询结果映射到相应的实体类中。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
    
    public void createUser(User user) {
        userRepository.save(user);
    }
    
    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }
    
    // 其他操作方法...
}

增删查改

当使用Spring Data JPA进行基本数据库操作时,以下是一些常见的示例操作:

插入数据:

// 创建实体对象
User user = new User();
user.setName("John");
user.setAge(25);

// 保存实体对象到数据库
userRepository.save(user);

更新数据:

// 根据ID获取实体对象
Optional<User> optionalUser = userRepository.findById(1L);
if (optionalUser.isPresent()) {
    User user = optionalUser.get();
    
    // 更新实体对象的属性
    user.setAge(30);
    
    // 保存更新后的实体对象到数据库
    userRepository.save(user);
}

删除数据:

// 根据ID删除实体对象
userRepository.deleteById(1L);

查询数据:

// 根据ID获取实体对象
Optional<User> optionalUser = userRepository.findById(1L);
if (optionalUser.isPresent()) {
    User user = optionalUser.get();
    System.out.println(user.getName());
}

// 查询所有实体对象
List<User> userList = userRepository.findAll();
for (User user : userList) {
    System.out.println(user.getName());
}

// 自定义查询方法
List<User> userList = userRepository.findByAgeGreaterThan(20);
for (User user : userList) {
    System.out.println(user.getName());
}

以上示例演示了基本的插入、更新、删除和查询操作。使用Spring Data JPA,您可以通过调用Repository接口中提供的方法来执行这些操作,而无需编写底层的SQL语句。您还可以根据自己的需求,使用注解和查询注解来定义更复杂的查询方法。

使用原生SQL:

// 利用原生的SQL进行查询操作
@Query(value = "select o.* from orders o ,user u where o.uid=u.id and u.name=?1", nativeQuery = true)
@Modifying
public List<Order> findOrderByName(String name);

// 利用原生的SQL进行删除操作
@Query(value = "delete from orders where id=?1 ", nativeQuery = true)
@Modifying
public void deleteOrderById(int id);

// 利用原生的SQL进行删除操作
@Query(value = "delete from orders where uid=?1 ", nativeQuery = true)
@Modifying
public void deleteOrderByUId(int uid);

// 利用原生的SQL进行修改操作
@Query(value = "update orders set name=?1 where id=?2 ", nativeQuery = true)
@Modifying
public void updateOrderName(String name,int id);

// 利用原生的SQL进行插入操作
@Query(value = "insert into orders(name,uid) value(?1,?2)", nativeQuery = true)
@Modifying
public void insertOrder(String name,int uid);

这些命令用于在JPA中使用原生SQL进行数据库表的操作。

实现分页功能:

Page<User> findByNameNot(String name, Pageable pageable);

这个命令用于在JPA中实现根据条件分页查询。


那日观海,我从未看海文章来源地址https://www.toymoban.com/news/detail-615540.html

到了这里,关于Spring data JPA常用命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jpa与Druid线程池及Spring Boot整合(二): spring-boot-starter-data-jpa 踏坑异常处理方案

                         docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升维: 道、法、

    2024年02月13日
    浏览(45)
  • Spring Data JPA 学习笔记

    Spring Data JPA: Spring Data JPA 的技术特点: @Entity 标注是一个实体类,实体类中的每一个属性都对应表中的一列。 @Table(name = “User”) 这个注解用于指定实体类对应的数据库表名。(但首字母会小写) @Data:这个注解是Lombok库提供的,用于自动生成实体类的getter和setter方法、构造函

    2024年04月09日
    浏览(43)
  • spring boot下基于spring data jpa配置mysql+达梦多数据源(以不同包路径方式,mysql为主数据源)

    :mysql 达梦/dameng jpa 多数据源 spring boot:2.1.17.RELEASE mysql驱动:8.0.21(跟随boot版本) 达梦驱动:8.1.2.192 lombok:1.18.12(跟随boot版本) 以mysql为主数据源,达梦为第二数据源方式配置 适用于旧项目二次开发接入达梦数据库或基于通用二方/三方包做业务扩展等场景 将以不

    2024年02月05日
    浏览(50)
  • 探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

    🎉欢迎来到Java面试技巧专栏~探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java面试技巧 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习

    2024年02月08日
    浏览(42)
  • Spring Data JPA 快速上手

    JPA的全称是Java Persisitence API,即JAVA持久化API,是sum公司退出的一套基于ORM的规范,内部是由一些列的接口和抽象类构成。JPA通过JDK5.0注解描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 Spring Data的优势:可以操作多种数据库,关系型数据库,非关系

    2024年04月23日
    浏览(23)
  • Springboot --- 整合spring-data-jpa和spring-data-elasticsearch

    SpringBoot: 整合Ldap. SpringBoot: 整合Spring Data JPA. SpringBoot: 整合Elasticsearch. SpringBoot: 整合spring-data-jpa和spring-data-elasticsearch. SpringBoot: 整合thymeleaf. SpringBoot: 注入第三方jar包. SpringBoot: 整合Redis. SpringBoot: 整合slf4j打印日志. SpringBoot: 整合定时任务,自动执行方法. SpringBoot: 配置多数据源

    2023年04月25日
    浏览(45)
  • Spring Data JPA的@Entity注解

     rulesCouponTypeConverter.java  entity/CouponTemplate.java Spring JPA 包的标准注解,对数据库字段进行了映射,我挑几个关键注解说道一下。 1、Entity:声明了“数据库实体”对象,它是数据库 Table 在程序中的映射对象; 2、Table:指定了 CouponTemplate 对应的数据库表的名称; 3、ID/Generat

    2024年02月11日
    浏览(40)
  • 金九银十面试题之《Spring Data JPA、Spring MVC、AOP》

    🐮🐮🐮 辛苦牛,掌握主流技术栈,包括前端后端,已经7年时间,曾在税务机关从事开发工作,目前在国企任职。希望通过自己的不断分享,可以帮助各位想或者已经走在这条路上的朋友一定的帮助 ❤️金九银十马上就要来啦,各位小伙伴们有计划跳槽的要开始准备了,博

    2024年02月15日
    浏览(31)
  • Spring Data JPA之自动创建数据库表

    由于在项目中使用到了Spring Data JPA(Java Persistent API)进行项目开发,并且自己对JPA比较感兴趣想进行学习和了解。首先学习和了解的是JPA自动创建数据库表,通过JPA能够让软件工程师们不用再去手动创建数据表,能够减轻软件工程师们的工作量。 通过本篇博客可以实现使用

    2024年02月05日
    浏览(39)
  • 如何使用Spring Data JPA简化MySQL数据访问

    本篇文章是 “一起学习mysql” 系列的第五篇文章,本篇文章我们学习一下Spring Data JPA的使用,在开始学习器,我们先来了解一下什么是JPA。 JPA的全称是Java Persistence API,是J2EE中的一条规范,它标准化了数据持久化API。在上一篇文章中,我们了解了如何使用MyBatis进行MySQL数据

    2024年02月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包