【我和openGauss的故事】SpringBoot连接openGauss项目实战

本文详细介绍了如何使用Docker安装和配置openGauss,以及在SpringBoot项目中实际应用,包括创建用户、数据库和表,最后展示了如何通过DataStudio连接和操作openGauss。尽管openGauss有其局限性,如仅支持Linux和部分功能待完善,但它在项目实践中提供了不错的体验。
摘要由CSDN通过智能技术生成

【我和openGauss的故事】SpringBoot连接openGauss项目实战

土豆虫 openGauss 2023-08-07 18:00 发表于中国香港

一:Docker安装openGauss

1.下载openGauss

安装好Docker好以后,执行如下命令下载openGauss3.0镜像。

docker pull enmotech/opengauss:3.0.0

图片

2.运行openGauss

执行如下命令

docker run -itd --name opengauss \
--restart=always \
--privileged=true \
-e GS_PASSWORD=OpenGauss@123 \
-v /home/opengauss:/var/lib/opengauss \
-u root \
-p 5432:5432 \
enmotech/opengauss:3.0.0

图片

二:使用openGauss

1.创建用户

安装好openGauss后会自动创建一个默认用户omm,但是该用户不能用于远程连接,必须创建一个新用户,用于数据连接。

1.进入容器

docker exec -it opengauss /bin/bash

2.切换omm用户

su omm

3.连接数据库

gsql -d postgres -p 5432

图片

4.创建新用户

CREATE USER gauss WITH Sysadmin IDENTIFIED BY 'OpenGauss@123';

图片

执行上述命令后将在postgres下创建用户gauss。

5.给用户授权

GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO gauss;
GRANT USAGE,SELECT ON ALL SEQUENCES IN SCHEMA gauss TO gauss;

图片

6.切换用户

openGauss=# \c - gauss

图片

注意:输入命令后需要输入密码,密码为前面设置的“openGauss@123”,且密码不显示。

2.创建数据库

1.创建my_db数据库

CREATE DATABASE my_db;

2.查看数据库

openGauss=> \l

图片

3.使用Data Studio连接openGauss

1.下载安装

Spring Boot 中,可以使用 Spring Data JDBC 模块和 opengauss JDBC 驱动来实现对 opengauss 数据库的访问和操作。如果需要捕获变更数据,可以使用 Spring Data JDBC 中的 Change Data Capture(CDC)功能。 首先,需要在 pom.xml 文件中添加 Spring Data JDBC 和 opengauss JDBC 驱动的依赖。然后,在 Spring Boot 应用程序中,可以使用 @ChangeStreamEventListener 注解来监听和捕获数据变更事件。具体步骤如下: 1. 定义实体类,用于映射数据库表的结构。 2. 创建一个继承于 AbstractJdbcConfiguration 的配置类,配置 opengauss 数据源和 JDBC 驱动等信息。 3. 在实体类上添加 @Table 注解,指定表名。 4. 在实体类上添加 @Changeable 注解,启用 CDC 功能。 5. 在实体类上添加 @ChangeStreamEventListener 注解,监听变更事件,并编写处理变更事件的方法。 下面是一个简单的示例: ```java @Entity @Table(name = "my_table") @Changeable public class MyEntity { @Id private Long id; private String name; private String email; // getter 和 setter 省略 } @Configuration public class OpengaussConfig extends AbstractJdbcConfiguration { @Override public DataSource dataSource() { // 配置 opengauss 数据源 } @Override public JdbcCustomConversions jdbcCustomConversions() { // 配置自定义转换器 } } @Component public class MyEntityChangeListener { @ChangeStreamEventListener public void handleMyEntityChange(EntityChangedData<MyEntity, Long> entityChangedData) { // 处理变更事件 } } ``` 这样,当 my_table 表中的数据发生变更时,MyEntityChangeListener 中的 handleMyEntityChange 方法就会被触发,从而可以捕获并处理变更数据。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值