SpringBoot连接openGauss

Docker安装openGauss

1.下载openGauss

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

docker pull enmotech/opengauss:3.0.0

运行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)下载安装
可以到openGauss官网下载安装Data Studio进行使用(注意版本对应)

 


(2)连接数据库

打开Data Studio后输入连接信息(注意自己的主机号)

名称:mygauss-conn
主机名:192.168.108.200
端口号:5432
数据库:postgres
用户名:ga_mason
密码:OpenGauss@123

 


连接成功后跳转至如下界面,可以查看创建表。

 

项目实战

1. 创建表

创建如下tbl_book表

2.创建项目

(1)创建如下SpringBoot项目结构


(2)部分项目文件

a. pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0%22 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance%22xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd%22%3E<modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.my</groupId><artifactId>openGaussPro</artifactId><version>0.0.1-SNAPSHOT</version><name>openGaussPro</name><description>openGaussPro</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.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency>
<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.5.1</version></dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

b. application.yml

spring:datasource:# config mysqlurl: jdbc:postgresql://192.168.132.128:5432/my_dbusername: gausspassword: OpenGauss@123driver-class-name: org.postgresql.Driver

c. Book.java

package com.my.pojo;
public class Book {private String id;private String type;private String name;private String description;
@Overridepublic String toString() {return "Book{" +"id=" + id +", type='" + type + '\'' +", name='" + name + '\'' +", description='" + description + '\'' +'}';}
public String getId() {return id;}
public void setId(String id) {this.id = id;}
public String getType() {return type;}
public void setType(String type) {this.type = type;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getDescription() {return description;}
public void setDescription(String description) {this.description = description;}}

d. BookController.java

package com.my.controller;
import com.my.common.Code;import com.my.common.Result;import com.my.exception.BusinessException;import com.my.pojo.Book;import com.my.service.BookService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;
import java.util.List;import java.util.UUID;
@RestController@RequestMapping("/books")public class BookController {@Autowiredprivate BookService bookService;
@PostMappingpublic Result save(@RequestBody Book book) {book.setId(UUID.randomUUID().toString());boolean flag = bookService.save(book);return new Result(flag? Code.SAVE_OK:Code.SAVE_ERR,flag);}
@PutMappingpublic Result update(@RequestBody Book book) {boolean flag = bookService.update(book);return new Result(flag?Code.UPDATE_OK:Code.SAVE_ERR,flag);}
@DeleteMapping("/{id}")public Result delete(@PathVariable Integer id) {boolean flag = bookService.delete(id);return new Result(flag?Code.DELETE_OK:Code.DELETE_ERR,flag);}
@GetMappingpublic Result getAll() {List<Book> bookList = bookService.getAll();Integer code = (bookList == null ? Code.GET_ERR:Code.GET_OK);String msg = (bookList == null? "数据查询失败!":"");return new Result(code,bookList,msg);}
@GetMapping(value = ("/getByName"))public Result getByName(@RequestParam("name") String name){List<Book> bookList = bookService.getByName(name);Integer code = (bookList == null ? Code.GET_ERR:Code.GET_OK);String msg = (bookList == null? "系统繁忙,请稍后再试!":"");return new Result(code,bookList,msg);}}

e. BookDao.java

package com.my.dao;
import com.my.pojo.Book;import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapperpublic interface BookDao {@Insert("insert into tbl_book values(#{id},#{type},#{name},#{description})")int save(Book book);
@Update("update tbl_book set type = #{type}, name = #{name}, description = #{description} where id = #{id}")int update(Book book);
@Delete("delete from tbl_book where id = #{id}")int delete(Integer id);
@Select("select * from tbl_book")List<Book> getAll();
@Select("select * from tbl_book where name like concat('%',#{name},'%')")List<Book> selectByName(String name);}

f. BookServiceImpl.java

package com.my.service.impl;
import com.my.dao.BookDao;import com.my.pojo.Book;import com.my.service.BookService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;
import java.util.List;
@Servicepublic class BookServiceImpl implements BookService {@Autowiredprivate BookDao bookDao;
@Overridepublic boolean save(Book book) {return bookDao.save(book) > 0;}
@Overridepublic boolean update(Book book) {return bookDao.update(book) > 0;}
@Overridepublic boolean delete(Integer id) {return bookDao.delete(id) > 0;}
@Overridepublic List<Book> getAll() {return bookDao.getAll();}
@Overridepublic List<Book> getByName(String name) {return bookDao.selectByName(name);}}

3. 项目运行

点击openGaussProApplication.java并运行main方法,浏览器输入

localhost:8080/pages/books.html

 


进入主界面以后可以进行图书的增删改查操作,下面演示图书的增加,点击“新建”按钮,输入图书信息点击确定

 


显示图书添加成功

 


数据库中也可查询到该条数据

 

总结

平时做项目用的都是MySQL较多,今天尝试了一下将openGauss作为数据库进行项目的数据存储,总的体验效果感觉还不错,包括存储速度以及连接简易性等,如果已经在电脑中配置好了openGauss环境,完全可以考虑将openGauss作为项目数据库来使用。但是不足的地方在于openGauss只支持在Linux进行安装,而平时我们使用最多的是Windows系统,所以对于个人用户来说使用不是那么方便,另外openGauss的连接工具Data Studio的功能还不够完善,可以对照Navicat进行改进,相信这样能更好提升使用体验。

转自鲲鹏社区:SpringBoot连接openGauss-技术干货-鲲鹏社区本文主要向大家介绍openGauss作为数据库进行项目的数据存储,包括存储速度以及连接简易性等。icon-default.png?t=N7T8https://www.hikunpeng.com/zh/developer/techArticles/20231127-15

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值