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日

相关文章

  • Springboot Thymeleaf模板文件调用Java类静态方法

    当我们在开发使用Spring Boot框架搭建的Web应用程序时,遇到调用Java类的静态方法的需求时,我们可以通过Thymeleaf模板引擎实现。 Thymeleaf是一种能够处理服务器和客户端模板的Java模板引擎,它能够将HTML模板与数据模型结合起来,生成最终的HTML页面。因此,我们可以在HTML模板文件中调用Java类的静态方法,从而获得更加灵活…

    Java 2023年5月31日
    00
  • WIN2003 IIS相关错误的解决方法

    WIN2003 IIS相关错误的解决方法 导言 WIN2003是一个非常优秀稳定的操作系统,而IIS是其中不可或缺的组件。然而,我们在使用IIS过程中,可能会遇到一些错误,导致网站无法正常访问。在本文中,我们将介绍一些常见的IIS错误及其解决方法,帮助您快速排除问题,让您的网站重获生机。 目录 错误一:IIS 500.19 错误 错误二:IIS 404 错误…

    Java 2023年6月15日
    00
  • Java实现AES加密算法的简单示例分享

    那么我将详细讲解“Java实现AES加密算法的简单示例分享”的完整攻略,包括实现步骤,示例说明等。 第一步:引入依赖 Java实现AES加密算法需要引入如下两个依赖: <dependency> <groupId>javax.crypto</groupId> <artifactId>javax.crypto-ap…

    Java 2023年5月26日
    00
  • hibernate存取json数据的代码分析

    下面我将为您详细讲解”hibernate存取json数据的代码分析”的攻略。 1. 前言 Hibernate是一个开源的ORM框架,提供了基于ORM的数据库访问解决方案,支持对象关系映射,可将Java对象映射到数据库中的表格中,非常适合开发Web应用程序。而Json是一种轻量级的数据交换格式,也非常流行。在开发应用程序时,我们经常需要对Json数据进行存取,…

    Java 2023年5月19日
    00
  • Java自定义简单标签实例

    Java自定义简单标签实例可以通过JSP自定义标签实现,本攻略将介绍如何自定义一个简单的标签,并且分别提供两个示例。 1. 前置要求 在进行Java自定义简单标签实例之前,需要具备以下条件: JDK 1.6或以上版本 Tomcat服务器或其他支持Servlet和JSP的Web服务器 2. 创建一个简单的标签 首先,需要创建一个Java类,以实现自定义标签。假…

    Java 2023年6月2日
    00
  • java 键盘输入的多种实现方法

    关于“Java键盘输入的多种实现方法”的攻略,下面就给您详细介绍: 使用 Scanner 类的 next() 方法进行输入 Scanner 是一个内置于 JDK 的类,专门用于输入处理。首先需要导入 java.util.Scanner 类。 示例代码: import java.util.Scanner; public class KeyboardInputD…

    Java 2023年5月18日
    00
  • Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】

    下面是Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】的完整攻略。 1. 什么是过滤器 在开始讲解如何实现session过期后自动跳转到登陆页功能之前,先需要明确什么是过滤器。过滤器是用来拦截请求、响应以及过滤其它需要过滤的内容的一个组件。在Java Web中,我们可以使用Filter接口来实现过滤器。 2. Servlet Fil…

    Java 2023年6月15日
    00
  • springmvc处理异步请求的示例

    在 Spring MVC 中,我们可以使用异步请求来提高 Web 应用的性能和响应速度。本文将详细讲解 Spring MVC 处理异步请求的示例,包括如何使用 @ResponseBody 注解和 DeferredResult 类,并提供两个示例说明。 使用 @ResponseBody 注解 在 Spring MVC 中,我们可以使用 @ResponseBod…

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