SpringBoot连接OpenGauss数据库

【实战教程】Spring Boot项目集成华为openGauss数据库的关键步骤与注意事项 本篇技术文章将聚焦于如何在Spring Boot项目中成功集成华为openGauss数据库,并揭示其中的一些关键步骤与注意事项,助您轻松驾驭这一强大的数据库引擎。简述一个简单的Spring Boot项目中集成openGauss数据库的具体步骤,包括创建实体类、编写Mapper接口与XML映射文件、启动应用并执行CRUD操作等,通过实例演示加深理解。:虽然大部分标准SQL语句在两者间通用,但openGauss可能存在特有的SQL扩展功能或约束条件,编写SQL时请注意区分。在Spring Boot的。 阅读详情
AI摘要

本文详细介绍了如何在OpenGauss中创建数据库、用户和表,包括使用Docker部署、数据库与用户的管理,以及数据插入。随后,文章演示了如何用SpringBoot应用连接OpenGauss数据库,配置MyBatis-Plus进行数据操作,包括实体类、Mapper和Service的创建。

1 在OpenGauss中创建数据库、用户和表

使用Docker创建OpenGauss容器参见“https://blog.youkuaiyun.com/make_progress/article/details/128872732”

⚠️ 注意:假设先创建用户A,切换用户A后创建数据库DB,则数据库DB属于用户A;

1.1 登录OpenGauss

# 进入容器
docker exec -it opengauss /bin/bash

# 切换用户
su omm

# 进入OpenGauss
gsql -d postgres -p 5432

1.2 创建数据库

# 创建数据库,不指定表空间,默认创建的数据库都属于用户“omm",可以使用“OWNER”设置所有者用户;
CREATE DATABASE db_department;

# 切换数据库,切换后前缀会变成“db_department=#”
\c db_department;

# 切换后变成如下
openGauss=# \c db_department;
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "db_department" as user "omm".
db_department=# 

# 删除数据库的方法
DROP DATABASE db_department;

# 查看数据库
\l

# 查看表空间
\db

1.3 创建用户

注意:用户和数据库是有一定关联的

# 先切换到“db_department”数据库,如果已经切换跳过
\c db_department

# 将会在“db_department”数据库下在创建用户“admin_department”
CREATE USER admin_department WITH Sysadmin IDENTIFIED BY 'OpenGauss@123';
# 创建成功后后,会出现以下提示
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE

# 给用户授权
GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO admin_department;
GRANT USAGE,SELECT ON ALL SEQUENCES IN SCHEMA admin_department TO admin_department;

# 删除用户的方法如下,使用CASCADE表示删除级联的信息,一般不要使用CASCADE;
DROP USER admin_department CASCADE;

# 查看用户
\du

# 切换用户的方法
\c - admin_department

# 退出
\q

# 使用“db_department”数据库和“admin_department”用户登录
gsql -d db_department -U admin_department -p 5432

1.4 创建表并插入数据

# 先切换到“db_department”数据库,如果已经切换跳过
\c db_department

# 切换到”admin_department“用户,如果已经切换跳过,密码是”OpenGauss@123“
# 如果不切换用户默认创建在”public“下
\c - admin_department

# 创建学生表
CREATE TABLE tb_class ( c_id INTEGER NOT NULL, c_name VARCHAR(40), c_age INTEGER );

# 插入数据
INSERT INTO tb_class (c_id, c_name, c_age) VALUES (1, '张三', 20), (2, '李四', 30), (3, 'wangwu', 40);

1.5 Data Studio连接OpenGauss

连接OpenGauss

在这里插入图片描述

连接成功

在这里插入图片描述

查看数据

在这里插入图片描述

2 SpringBoot连接数据库

使用postgresql驱动和MyBatis-Plus连接OpenGauss;

2.1 工程布局

在这里插入图片描述

2.2 pom.xml文件

pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Test project for Spring Boot</description>
	<properties>
		<java.version>11</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>42.5.1</version>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.20</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

application.yml

spring:
  datasource:
    # config mysql
    url: jdbc:postgresql://192.168.108.200:5432/db_department
    username: admin_department
    password: OpenGauss@123
    driver-class-name: org.postgresql.Driver


# print logs
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 关闭数据库下划线自动转驼峰
    map-underscore-to-camel-case: false

2.3 创建实体类

在entitys目录下创建“TbClass.java”实体类

package com.example.test.entitys;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/*
注意:下面的数据库字段和实体字段对应;
(1)如果,两个字段完全一样,则必须关闭application.yml中的map-underscore-to-camel-case属性;
    mybatis-plus:
        configuration:
            # 关闭数据库下划线自动转驼峰
            map-underscore-to-camel-case: false

(2)如果,数据库字段属性是下划线,实体字段是驼峰式,则必须开启application.yml中的map-underscore-to-camel-case属性(默认开启)
*/


@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_class")
public class TbClass {
    private String c_id;
    private String c_name;
    private String c_age;
}

2.4 创建Mapper

在dao目录下的mpmapper目录下创建“TbClassMapper.java”

package com.example.test.dao.mpmapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.test.entitys.TbClass;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface TbClassMapper extends BaseMapper<TbClass> {
}

2.5 创建Service

在service目录下创建“TbClassService.java”文件。

package com.example.test.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.test.dao.mpmapper.TbClassMapper;
import com.example.test.entitys.TbClass;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class TbClassService {

    @Autowired
    private TbClassMapper tbClassMapper;

    public List<TbClass> query(){
        QueryWrapper<TbClass> wrapper = new QueryWrapper<>();
        return this.tbClassMapper.selectList(wrapper);
    }
}

2.6 创建Controller

在controller目录下创建“TestController.java"文件。

package com.example.test.controller;


import com.example.test.entitys.TbClass;
import com.example.test.service.TbClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


import java.util.List;

@Controller
@ResponseBody
@RequestMapping("/gadb")
public class TestController {

    @Autowired
    TbClassService tbClassService;

    @GetMapping("/query")
    public List<TbClass> queryData(){
        return tbClassService.query();
    }

}

2.7 创建Application

package com.example.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

2.8 测试

浏览器中访问: http://localhost:8080/gadb/query

在这里插入图片描述

IDEA中打印的日志

在这里插入图片描述

【项目实战】SpringBoot连接openGauss 平时做项目用的都是MySQL较多,今天尝试了一下将openGauss作为数据库进行项目的数据存储,总的体验效果感觉还不错,包括存储速度以及连接简易性等,如果已经在电脑中配置好了openGauss环境,完全可以考虑将openGauss作为项目数据库来使用。 阅读详情

相关推荐

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

平时做项目用的都是MySQL较多,今天尝试了一下将openGauss作为数据库进行项目的数据存储,总的体验效果感觉还不错,包括存储速度以及连接简易性等,如果已经在电脑中配置好了openGauss环境,完全可以考虑将openGauss作为项目数据库来使用。

gallopingdb的博客 1635

SpringBoot + openGauss开发入门

openGauss 对业界知名的 spring 支持还算友好,直接用传统的 postgresql 驱动就可以接入使用,也有自己的 opengauss 驱动。如果使用顺利,还可以支持分布式配置、服务路由、负载均衡、熔断限流、链路监控这些功能,事实上在微服务的技术框架上也是支持的。数据库日志。

renxyz的专栏 2402

Spring Boot 集成华为 OpenGauss:Flyway 与 Flowable 的国产化实践

本文详细介绍了Spring Boot集成华为OpenGauss数据库的实践,重点讲解了Flyway数据库迁移工具和Flowable工作流引擎的国产化应用。通过环境配置、迁移脚本编写、工作流初始化等关键步骤,帮助开发者高效构建企业级应用,并提供了性能调优和问题排查的实战经验。

weixin_42567752的博客 409

用idea开发springboot+mybatis后端:连接以openGauss为数据库并操作的方法

本文介绍了在SpringBoot项目中集成MyBatis并连接openGauss数据库的方法。首先需在pom.xml中添加openGauss-JDBC驱动和MyBatis依赖,配置application.yml中的数据库连接信息。针对openGauss的安全限制,需使用超级用户授权普通用户权限。文章详细演示了在IDEA中通过数据库控制台执行建表、插入和查询操作,特别指出openGauss使用PostgreSQL驱动,并提供兼容的建表语法。最后强调非SSL连接的安全提示,并附上相关文档参考。

Love_ou的博客 1482

SpringBoot项目从MySQL迁移到Vastbase G100的保姆级避坑指南(附完整配置与问题排查)

本文详细介绍了SpringBoot项目从MySQL迁移到国产数据库Vastbase G100的全过程,包括驱动配置、数据类型映射、序列优化等关键步骤。特别针对8个典型问题提供解决方案,如外键约束处理、SQL语法兼容性调整等,帮助开发者顺利完成数据库迁移并优化性能。

weixin_30379531的博客 298

openGauss数据库容器化相关操作

华为开源关系型数据库openGauss,容器化相关操作包括 docker安装、持久化、镜像制作等

OpenGauss创建数据库连接SpringBoot

该参数影响dolphin插件中的部分冲突的函数和操作符等,参数开启时这些函数和操作符会执行兼容性逻辑,关闭时则保持openGauss原有的逻辑。若要启用dolphin兼容mysql插件,创建数据库时需创建B模式数据库。创建用户,并使其具有系统管理员权限(sysadmin)在配置文件中添加连接信息,替换相关信息。安装dophin插件(可能不需要)退出并使用新创建的用户进入数据库。使用omm身份进入到数据库。进入刚刚创建的B模式数据库。连接SpringBoot。兼容mysql数据库。

weixin_56868125的博客 1086

计算机网络自顶向下(第八版)第一章课后习题

电路交换网络具有以下优点:资源独占性,在建立连接时,电路交换网络为通信双方独占一条物理路径,不会受到其他用户的影响。低时延,由于建立了专用路径,数据传输时延较小,适合对时延敏感的应用,如实时语音和视频通信。数据链路层:提供节点之间可靠的数据传输,主要任务是错误检测和纠正,以及数据帧的传输和访问控制。移动蜂窝网络:如4G LTE和5G,通过移动基站提供的无线信号实现移动设备的互联网接入。网络层:负责数据包的路由和转发,主要任务是通过网络选择最佳路径,进行流量控制和拥塞控制。手机,服务器,路由器,电脑;

hiahiakk的博客 2256

OpenGauss数据库安装和SpringBoot项目使用OpenGauss数据库

虽然引用依赖是opengauss-jdbc,但opengauss-jdbc-3.1.0.jar中的路径依旧是 org.postgresql.Driver。引入OpenGauss的maven依赖(版本太高可能会出现依赖冲突,比如7.0.0会有slf4j的依赖冲突)连接使用navicat等 使用postgreSQL 或者opengauss驱动。所以driverClassName填写 org.postgresql.Driver。opengauss数据库安装。

Fuly的博客 379

无人驾驶感知融合——横摆角速度的多源估计算法解析

本文深入解析了无人驾驶感知融合中的横摆角速度多源估计算法,详细介绍了轮速差法、侧向加速度法、曲率法和惯性传感器直读法四种计算方法及其优缺点。通过卡尔曼滤波实战案例,展示了多源融合算法在提升精度和稳定性方面的显著优势,并探讨了工程实践中的时间对齐、坐标系统一等关键问题。

weixin_31458015的博客 462

XIAO ESP32S3 Sense摄像头与麦克风实战:从硬件连接到AI语音视觉项目

本文详细介绍了如何使用Seeed Studio XIAO ESP32S3 Sense开发板进行AI语音视觉项目开发。从硬件连接到Arduino环境搭建,再到摄像头拍照、视频流传输、麦克风录音等实战操作,最后引导读者探索基于TensorFlow Lite Micro的语音唤醒和SenseCraft AI的图像识别等AI应用,为物联网和边缘AI项目提供了完整的入门指南。

xray4的博客 1024

SpringBoot3 整合 openGauss 完整适配实战|开源国产数据库生产落地指南

如果需要直接映射为 Java 对象,可自定义 Jackson 类型处理器,避免手动序列化。SpringBoot3 整合 openGauss,核心不是简单改个驱动类名,而是从依赖、方言、连接池、ORM、语法全链路做适配。用官方驱动、原生方言、生产级连接池配置,再配合 Schema 规范与迁移语法对照,就能做到稳定可靠、性能达标,完全满足开源信创项目的落地要求。作为开源路线的国产数据库,openGauss 生态活跃、成本低、PG 生态迁移成本小,适合预算有限、技术团队有 PG 基础的项目。

雨辰AI的博客 438

Python环境搭建和LabVIEW中的调用

本文主要介绍Python相关的环境搭建、Anaconda的使用以及在LabVIEW中调用Python的方法。

lvxisi的博客 6390

当Java遇见openGauss:基于SpringBoot的现代化数据层架构设计

本文探讨了如何将openGauss数据库与Java技术栈结合,基于SpringBoot构建高性能数据层架构。通过Docker快速部署openGauss,配置SpringBoot项目连接数据库,并实现高级功能如自定义JPA方言、多数据源动态路由和性能优化。文章还提供了云原生集成方案和监控运维建议,助力企业提升数据库性能与扩展性。

sre5engineer的博客 66

手把手教你用Cadence Virtuoso完成LNA全套仿真:基于SpectreRF手册的实战补充

本文详细指导如何使用Cadence Virtuoso和SpectreRF完成LNA的全套仿真,涵盖噪声仿真、增益压缩、THD分析及双音IP3测量等关键步骤。针对官方手册中的常见问题,提供了12个实战解决方案,包括hbnoise函数选择、双音信号源配置等,帮助工程师高效完成射频IC设计。

weixin_29102619的博客 524

Aurix TC3xx系列MCU ADC模块简介(一)

简单介绍英飞凌Aurix TC3xx系列单片机ADC模块的特点及内部结构。

m0_38045338的博客 6361

SpringBoot+openGauss DataVec:解锁企业级RAG应用的SQL原生向量检索新范式

本文探讨了如何利用SpringBoot与openGauss DataVec构建企业级RAG应用,实现SQL原生向量检索。通过将向量作为数据库原生类型,开发者可直接使用熟悉的SQL语句进行高效的语义相似度查询,从而简化技术栈、统一数据治理并大幅提升开发效率。文章提供了从快速上手到生产部署的完整实践指南,并深入分析了性能调优与高级应用场景。

weixin_29291863的博客 261

工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定

上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...

山云的专栏 1万+

springboot配置数据库

#设置连接数据库的配置 #如果mysql版本是8以上的,是com.mysql.cj.jdbc.Driver,是8以下的,是com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root spring.datasource.password=root spring.datasource.url=jdbc:mysql://localhost:33.

qq_52291182的博客 1466

MATLAB 基于 Baker 映射和 Logistic 混沌序列的图像加解密实现

图像加密是信息安全领域的重要研究方向,在数字版权保护、隐私保护等领域有着广泛应用。本文将介绍基于 MATLAB 的 Baker 映射和 Logistic 混沌序列的图像加解密算法,该算法利用混沌系统的初值敏感性和伪随机性,能够有效地对图像进行加密和解密。基于 Baker 映射和 Logistic 混沌序列的图像加解密算法是一种有效的方法,可以应用于数字版权保护、隐私保护等领域。MATLAB 提供了强大的工具和函数,可以方便地实现该算法。

走向CTO的路上... 935

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【报错记录】OpenGauss/磐维数据库连接报:org.postgresql.util.PSQLException: 致命错误: 账户被锁定

SpringBoot项目因多次输错密码导致账号被磐维数据库锁定,连接失败。通过参考OpenGauss文档,解决方案为:1) 使用gsql查看当前失败登录次数(默认5次);2) 退出数据库,通过gs_gucreload命令将失败尝试次数改为100次;3) 重新登录数据库,通过ALTER USER命令先锁定再解锁用户账号。这套操作成功解除锁定,使SpringBoot项目恢复连接。注意需根据实际数据库路径修改命令参数。

DCTANT的博客 1021

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA Spring boot 连接openGauss库

3.在项目配置文件或连接库代码中使用。openGauss jdbc的驱动为“org.opengauss.Driver”,其中url前缀为“jdbc:opengauss”。可能与我使用的druid版本有关,我使用的是1.2.16。System.out.println("连接成功!System.out.println("连接成功!System.out.println("连接成功!在yml配置文件中(opengauss版本为3.1)2.在项目中将下载并解压后的*.jar添加到项目。注意:官网给出的配置参数是。

leitoyn的专栏 5446

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringBoot连接openGauss

Docker安装openGauss1.下载openGauss安装好Docker好以后,执行如下命令下载openGauss3.0镜像。docker pull enmotech/opengauss:3.0.0运行openGauss执行如下命令docker run -itd --name opengauss \--restart=always \--privileged=true \-e GS_PASS...

2301_76434200的博客 1256
上一篇: 简单使用OpenGauss数据库
下一篇: Dubbo3简单使用
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值