SpringBoot连接openGauss
发表于 2023/11/27
0
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
进入主界面以后可以进行图书的增删改查操作,下面演示图书的增加,点击“新建”按钮,输入图书信息点击确定

显示图书添加成功

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



