后端与系统架构1597 字

Spring Data JPA访问MySQL数据

·全库 387 / 611

《Spring Data JPA访问MySQL数据》共 0.2 万字,通篇围绕 数据库、MySQL、Redis、架构 展开,归在「后端与系统架构」这一层。

覆盖数据库MySQLRedis架构日志安全

适合给 AI 系统搭底座、要管得住的人

目录骨架(6 节)
  1. Spring Data JPA使用:
  2. Spring Data新特性
  3. Spring Data架构
  4. Spring Data核心模块
  5. SpringDataJPA结合MySQL
  6. 1.5 Spring Data JPA框架

JPA(Java Persistence API)用于对象持久化的 API,是 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。

​

JDBC 也是一种规范和接口,不过 JDBC 是面向 SQL 的,使用起来比较繁琐。所以就有了 ORM 框架,建立了 Java 对象与数据库表之间的映射关系,可以通过直接操作对象来实现持久化,简化了操作的繁杂度。而 JPA 就是 ORM 框架的规范,值得一提的是 Hibernate 是符合 JPA 规范的,而 MyBatis 却不符合,因为 MyBatis 还是需要写 SQL 的。

虽然HIbernate用的人越来越少了,但是JPA这种统一的标准化接口在我们开发工作中仍然有重要意义。我们首先看下JDBC示意图:

image.png

JPA示意图

​

​

image.png

​

Spring Data JPA使用:

在开始使用Spring Data JPA之前,我们需要进行一些配置。首先,我们需要添加Spring Data JPA的依赖项。打开项目的pom.xml文件,并在<dependencies>标签中添加以下依赖:


<dependencies>
    <!-- Spring Data JPA依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

​

接下来,我们需要在项目的配置文件中进行数据源和JPA的相关配置。打开application.properties文件(或者application.yml文件),并添加以下配置:


# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password

# JPA配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

​

在这里,我们配置了数据库的连接信息以及JPA的一些属性。确保将spring.datasource.url中的mydatabase替换为你自己的数据库名称,并根据实际情况修改用户名和密码。

​

定义实体类和Repository接口

在使用Spring Data JPA进行数据访问之前,我们需要定义实体类和Repository接口。

​

首先,我们需要定义实体类,它们代表了数据库中的表。在这个示例中,我们创建一个名为"User"的实体类:


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 username;
    private String password;

    // 构造函数、Getter和Setter方法
}

​

在这里,我们使用了@Entity注解将这个类标记为JPA实体,@Id注解表示该属性为主键,@GeneratedValue注解指定了主键的生成策略。

​

接下来,我们需要定义Repository接口,它是用于进行数据库操作的接口。在这个示例中,我们创建一个名为"UserRepository"的接口:


import org.springframework.data.jpa.repository.JpaRepository;
import com.example.model.User;

public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}

​

在这里,我们继承了JpaRepository接口,并指定了实体类类型和主键的类型。通过继承JpaRepository接口,我们就拥有了许多常用的数据访问方法,例如插入、查询、更新和删除等。

​

使用Spring Data JPA进行数据访问

一旦我们完成了Spring Data JPA的配置和Repository接口的定义,我们就可以使用它进行数据访问了。

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求