Spring Data Jpa整合PostgreSQL(二)

直接看三吧,这个也没写好PostgreSQL的话主要还是整理一下使用方法吧,毕竟我现在也只会使用。PostgreSQL的使用方法与MySQL类似, 但更全面,实现了SQL-2/SQL-92 和 SQL-3/SQL-99标准。优点缺点就不提了,直接说说怎么用吧。咱使用pg当然不会只把他当做MySQL来用,而我用它的目的就是jsonb。0. 导入有用的包 <depen...
摘要由CSDN通过智能技术生成

直接看三吧,这个也没写好

PostgreSQL的话主要还是整理一下使用方法吧,毕竟我现在也只会使用。

PostgreSQL的使用方法与MySQL类似, 但更全面,实现了SQL-2/SQL-92 和 SQL-3/SQL-99标准。优点缺点就不提了,直接说说怎么用吧。

咱使用pg当然不会只把他当做MySQL来用,而我用它的目的就是jsonb。

0. 导入有用的包

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

<exclusions>

<exclusion>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-slf4j-impl</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.postgresql</groupId>

<artifactId>postgresql</artifactId>

</dependency>

 

1.基本配置

 

spring:

datasource:

url: jdbc:postgresql://118.89.146:5432/postgres

username: postgres

password: 123456

driverClassName: org.postgresql.Driver

type: com.alibaba.druid.pool.DruidDataSource

initialization-mode: always

jpa:

show-sql: true

database-platform: cn...ledger.dialect.JsonbPostgresDialect

hibernate:

ddl-auto: update

properties:

hibernate:

temp:

use_jdbc_metadata_defaults: false

ps: use_jdbc_metadata_defaults这个配置很重要,可以解决SpringBoot2.0版本的一个错误,具体机理我还没有研究,只是参考了一个博客做出的修改。

 

2. 配置方言

以上的配置与MySQL没什么差别,需要注意是方言的指定,我写的这个需要自己配置方言类:

 

import org.hibernate.dialect.PostgreSQL94Dialect;

import org.hibernate.dialect.PostgreSQL95Dialect;

import org.hibernate.type.StringType;

import java.sql.Types;

/**

* @Author ZhenYang

* @Date Created in 2018/3/14 13:45

* @Description

*/

public class JsonbPostgresDialect extends PostgreSQL95Dialect {

public JsonbPostgresDialect() {

super();

registerColumnType(Types.JAVA_OBJECT, "jsonb");

registerHibernateType( Types.ARRAY, StringType.class.getName());

}

}

这里我指定了jsonb的类型,下面那个HibernateType是当时测试玩的。

 

3.配置jsonb类型

 

import com.alibaba.fastjson.JSON;

import com.fasterxml.jackson.databind.ObjectMapper;

import org.hibernate.HibernateException;

import org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl;

import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;

import org.hibernate.engine.spi.SharedSessionContractImplementor;

import org.hibernate.type.SerializationException;

import org.hibernate.usertype.ParameterizedType;

import org.hibernate.usertype.UserType;

import org.postgresql.util.PGobject;

import org.springframework.util.ObjectUtils;

import java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值