数据库JDBC版本:GBase 8s JDBC V8.8 3.3.0_3
Mybatis-Plus版本: 3.4.3.2
JDK版本: jdk1.8.0_201
QT5.12.12通过ODBC连接到GBase 8s数据库(CentOS)
本示例使用的环境如下:
- 硬件平台:x86_64(amd64)
- 操作系统:CentOS 7.8 2003
- 数据库版本(含CSDK):GBase 8s V8.8 3.0.0_1
为什么使用QT 5.12.10? - 该版本包含QODBC。
1,GBase 8s数据库的ODBC安装与配置
1.1,确认操作系统已经安装unixODBC及unixODBC-devel
通过apt查找确认unixODBC及unixODBC-devel已经安装
[root@localhost ~]# rpm -qa unixODBC unixODBC-devel
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
QT通过ODBC连接GBase 8s数据库(Windows)示例
示例环境:
- 操作系统:Windows 10 64位
- 数据库及CSDK版本:GBase 8s V8.8_3.0.0_1 64位
- QT:5.12.0 64位
1,CSDK安装及ODBC配置
1.1,免安装版CSDK
下载免安装版的CSDK驱动,地址:https://gbasedbt.com/dl/odbc/GBase8s_3.0.0_1-Win64-ODBC-Driver.zip
解压到不含中文的目录下,如D盘根目录下,生成gbase8s-odbc-driver目录
在mybatis-plus中增加对GBase 8s的支持
在mybatis-plus 3.4.3.2版本之后已经增加了对GBase 8s的支持(使用GBASEDBT类型),在3.5.2版本中变更类型为GBASE8S。如果使用的是其它版本,按照以下进行修改。
mybatis-plus-annotation模块
1, 在 com.baomidou.mybatisplus.annotation.DbType.java 类中增加
GBASEDBT("gbasedbt", "南大通用安全数据库(GBase 8s)"),
注册GBase 8s的数据库类型,名称为GBASEDBT
GBase 8s重建sysuser库的方法
因sysuser库出现异常,需要重建sysuser库,请按以下方式:
1,停止使用USERMAPPING,全使用操作系统验证。
onmode -wf USERMAPPING=OFF
2,去除字符集相关的环境变量
unset DB_LOCALE
unset CLIENT_LOCALE
unset GL_USEGLU
GBase 8s使用C3P0连接池时去除SQLWarning警告
通过C3P0连接池连接到GBase 8s数据库时,可能会碰到这样的SQLWarning:
六月 16, 2023 3:40:55 下午 com.mchange.v2.c3p0.SQLWarnings
信息: Database has transactions
java.sql.SQLWarning: Database has transactions
或者
六月 16, 2023 3:40:55 下午 com.mchange.v2.c3p0.SQLWarnings
信息: Database selected
java.sql.SQLWarning: Database selected
以上警告,虽然不影响操作,但该日志频繁出现,将影响系统性能。
GBase 8s中的start with connect by用法
如果表中存在层次数据,则可以使用层次化查询子句查询出表中行记录之间的层次关系
基本语法:
[ START WITH CONDITION1 ]
CONNECT BY [ NOCYCLE ] CONDITION2
示例:
select id,parentid,partname, level
from tabpart
start with id = 11
connect by nocycle prior id = parentid;
三种Python操作GBase 8s数据库数据类型的差异
2025-03-27更新
三种Python操作GBase 8s数据库数据类型的差异
Python可以通过多种方式操作GBase 8s数据库,常见的类型包括DbtPy(原生)、Pyodbc(ODBC方式)和JayDeBeApi(调用jdbc)。以下是这三种操作方式对GBase 8s数据库的数据类型支持的对比
JayDeBeApi对数据类型的支持
JayDeBeApi对数据类型的支持
常用的数据类型如下:
字符类型
内置字符类型包括:char, nchar, varchar, nvarchar, lvarchar, varchar2和nvarchar2
CHARACTER(n) 和 CHARACTER VARYING(n)这样的别名同样支持
参考代码:test_string_type.py
Pyodbc对GBase 8s数据库的数据类型的支持
Pyodbc对数据类型的支持
常用的数据类型如下:
字符类型
内置字符类型包括:char, nchar, varchar, nvarchar 和lvarchar
CHARACTER(n) 和 CHARACTER VARYING(n)这样的别名同样支持
参考代码:test_string_type.py