SpringBoot整合JPA数据源方法及配置解析

下面就来详细讲解SpringBoot整合JPA数据源方法及配置解析。

一、什么是JPA

JPA(Java Persistence API)是Java持久化规范,是EJB 3.0规范的一部分,旨在为Java开发人员提供一个数据库无关的对象/关系映射标准,以便管理Java应用程序中的持久化数据。在JPA中,我们通过实体类来操作数据库,不再需要手写增删改查的SQL语句。

二、SpringBoot集成JPA的步骤

1.在pom.xml文件中添加依赖

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

2.配置数据源

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: root

其中,driver-class-name是指定数据库驱动,url是指定数据库连接地址,username和password是指定登录数据库的用户名和密码。

3.创建实体类

@Entity
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String author;

    @Temporal(value = TemporalType.TIMESTAMP)
    private Date createTime;

    @Temporal(value = TemporalType.TIMESTAMP)
    private Date updateTime;

    // 省略getter和setter方法
}

在实体类上通过@Entity注解表示这是一个实体类,@Id表示这是主键,@GeneratedValue指定主键生成策略,其余字段与数据库表中的字段一一对应。

4.创建仓库类

@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
}

通过继承JpaRepository接口,就可以直接使用JPA提供的方法进行增删改查操作,不需要手写SQL语句。

5.在Service中调用仓库方法

@Service
public class BookService {

    @Autowired
    private BookRepository bookRepository;

    public List<Book> getAllBooks() {
        return bookRepository.findAll();
    }

    public Book getBookById(Long id) {
        return bookRepository.findById(id).orElse(null);
    }

    public Book saveBook(Book book) {
        return bookRepository.save(book);
    }

    public void deleteBook(Long id) {
        bookRepository.deleteById(id);
    }
}

在Service类中注入BookRepository,调用JPA提供的方法进行数据库操作。

6.测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class BookServiceTest {

    @Autowired
    private BookService bookService;

    @Test
    public void testGetAllBooks() {
        List<Book> books = bookService.getAllBooks();
        System.out.println(books);
    }

    @Test
    public void testGetBookById() {
        Book book = bookService.getBookById(1L);
        System.out.println(book);
    }

    @Test
    public void testSaveBook() {
        Book book = new Book();
        book.setName("Java");
        book.setAuthor("James Gosling");
        book.setCreateTime(new Date());
        book.setUpdateTime(new Date());
        Book savedBook = bookService.saveBook(book);
        System.out.println(savedBook);
    }

    @Test
    public void testDeleteBook() {
        bookService.deleteBook(1L);
    }

}

通过调用BookService中的方法进行测试,可以看到数据成功地从数据库中读取出来,新增成功,删除也成功。

三、配置解析

在上述步骤中,我们配置了数据源,这里对配置参数进行解析。

1.datasource.driver-class-name

该参数指定了使用的数据库驱动,在实际项目中根据不同的数据库进行相应的配置。

2.datasource.url

该参数指定了数据库连接地址,其中的test可以替换为实际的数据库名。useUnicode=true表示使用Unicode字符集,characterEncoding=utf8表示使用UTF-8编码,useSSL=false表示不使用SSL连接,serverTimezone指定了时区为东八区。

3.datasource.username和datasource.password

该参数分别指定了登录数据库的用户名和密码。

四、示例

下面给出两个示例,分别演示了SpringBoot集成MySQL、集成MongoDB。

1.集成MySQL

在pom.xml文件中添加MySQL依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

配置数据源:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: root

引入JPA依赖:

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

创建实体类和仓库类,和上述示例相同。

2.集成MongoDB

在pom.xml文件中添加MongoDB依赖:

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

配置数据源:

spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/test

创建实体类:

@Document(collection = "books")
public class Book {

    @Id
    private String id;

    private String name;

    private String author;

    private Date createTime;

    private Date updateTime;

    // 省略getter和setter方法
}

创建Repository类:

@Repository
public interface BookRepository extends MongoRepository<Book, String> {
}

测试代码和上述示例相似。

以上就是SpringBoot集成JPA数据源方法及配置解析的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合JPA数据源方法及配置解析 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java 流处理之收集器详解

    Java 流处理之收集器详解 Java 8 引入了一个新的 Stream API,其中的收集器(Collector)是 Java 8 可以处理流(Stream)中数据的一个关键工具。收集器是指将流中元素转换成不同形式的操作。在本文中,我们将详细介绍 Java 中的收集器。 收集器的基本概念 Java 8 提供了 22 个预定义的收集器。这些收集器和终止操作结…

    Java 2023年5月26日
    00
  • 什么是弱引用?

    弱引用(Weak Reference)是一种不会增加对象的引用计数的引用方式。当一个对象被设置为弱引用时,如果该对象没有被强引用指向,则垃圾回收器会回收它的内存。由于弱引用不会阻止被引用对象的垃圾回收,因此经常用于避免内存泄漏。 在Python中,可以使用标准库中weakref模块来创建弱引用。比如下面的代码就创建了一个弱引用: import weakref…

    Java 2023年5月10日
    00
  • Android编程开发之打开文件的Intent及使用方法

    Android编程开发之打开文件的Intent及使用方法 在Android应用程序中,我们经常需要打开文件,比如图片、视频、音乐、文档等等,这时就要用到Intent。Intent是Android中的重要组成部分,它用于在不同应用程序之间进行交互,比如启动Activity、启动Service、启动BroadcastReceiver等等。 打开文件的Intent…

    Java 2023年6月15日
    00
  • Java 后端开发中Tomcat服务器运行不了的五种解决方案

    下面就详细讲解一下“Java 后端开发中Tomcat服务器运行不了的五种解决方案”的攻略。 问题描述 在Java后端开发中,经常会使用Tomcat服务器,但在部署过程中,可能会遇到Tomcat服务器运行不了的问题。这些问题可能有多种原因,接下来我们将逐一介绍五种解决方案。 解决方案 1.检查端口占用情况 Tomcat服务器默认使用的端口号为8080,如果该端…

    Java 2023年6月2日
    00
  • 详解Tomcat多域名配置(多个项目共用80端口)

    我将为您详细讲解如何实现Tomcat多域名配置,以及多个项目如何共用80端口。 一、前置条件 在进行多域名配置之前,您需要完成以下几个步骤:1. 确认您的服务器上已经安装了Tomcat。2. 确认您的服务器操作系统是Linux。3. 确认您已经有至少一个域名,且该域名已经在DNS服务器中解析。 二、步骤 下面,我们将分步骤介绍如何进行多域名配置: 2.1 配…

    Java 2023年5月20日
    00
  • java读取excel表格的方法

    下面就为您详细讲解Java读取Excel表格的方法的完整攻略。 准备工作 在开始从Excel表格中读取数据之前,需要准备好以下两个工具: Apache POI:一个用于操作Microsoft文档格式文件的Java API。具体来讲,就是用于在Java程序中读取、写入和操作各种Microsoft文件,如Excel文件、Word文档、PowerPoint演示文稿…

    Java 2023年5月19日
    00
  • Java中的继承详情

    下面是关于Java中继承的详细讲解和示例说明: 什么是继承? 在Java中,继承是一种面向对象编程的重要特性,它允许一个类(称为子类)继承另一个类(称为父类)的属性和方法。继承机制允许子类重写父类的方法或添加自己的属性和方法。 如何实现继承? 在Java中,使用关键字extends实现继承,具体语法为: class SubClass extends Supe…

    Java 2023年5月26日
    00
  • SpringMVC中controller返回json数据的方法

    让我们来详细讲解一下“SpringMVC中controller返回json数据的方法”的完整攻略。 1.确保项目中已经引入SpringMVC相关的依赖 在使用SpringMVC返回json数据之前,需要确保项目中已经引入SpringMVC相关的依赖。通常情况下,这些依赖可以在pom.xml文件中找到。具体的依赖包括:spring-web、spring-web…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部