SpringBoot整合PostgreSQL结合Jpa的使用

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2019/09/springboot-postgresql.html

SpringBoot整合PostgreSQL,并结合Jpa使用。

PostgreSQL 是一个开源的功能强大的关系型数据库,类似于MySQL,但在某些方面比MySQL更强大。

Springboot整合PostgreSQL可通过以下步骤:

1. SpringBoot项目加入Jpa和PostgreSQL依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>

本例使用的SpringBoot版本为 1.5.22.RELEASE 。

2. 配置postgresql数据源和jpa属性

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/postgres
    username: postgres
    password: root
    driverClassName: org.postgresql.Driver
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQL9Dialect
      temp:
        use_jdbc_metadata_defaults: false

application.yml 配置如上图所示。

3. 新建实体类,加上@Entity注解

import javax.persistence.*

@Entity
class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    long id
    String name
    int age
    Date birthDay
}

当在实体类加上@Entity注解后,启动项目后便会自动创建出对应的数据表。创建的策略与配置项 spring.jpa.hibernate.ddl-auto 的值有关。

@Id 注解为指定数据表的主键。

@GeneratedValue 指定了主键的生成策略。

关于Jpa实体上的注解,可参考 《Jpa中,实体类相关的注解说明》。

4. 继承Jpa的xxxRepository接口操作数据库

/**
 *
 * @author yawn < http://jvm123.com >
 *     2019/9/16 16:10
 */
interface StudentRepo extends JpaRepository<Student, Long> {

    Student save(Student person)

    List<Student> findAll()
}

接口可继承 CrudRepository、PageAndSortingRepository、JpaRepository、 Repository ,继承不同的接口就具有不同的功能。具体可参考:《Springboot整合jpa的基本使用方法大全》。

发表评论