当前位置:   article > 正文

国产数据库适配-南大通用(Gbase)问题整理_springboot gbase8s

springboot gbase8s

Gbase 函数

[GBase 8s 教程]GBase 8s 常用函数、表达式_gbase函数-CSDN博客

Gbase 8s hibernate方言包下载:

Index of /dl/hibernate

select * from sysmaster:sysdbslocale

  • 导出数据

su - gbasedbt

export DB_LOCALE=zh_CN.57372

export CLIENT_LOCALE=zh_cn.utf8

执行下面这条命令会把ta的库导出到当前目录下的ta.exp文件夹中,其中表结构和表数据是分开存储的。

dbexport ta;

  • 导入数据:

dbimport ta -d datadbs1 -l buffered

启动数据库服务:

oninit -vy

关闭数据库服务:

onmode -ky

查看数据库版本和运行模式:

onstat -

Springboot工程 适配南大通用(gbase 8s)

引入驱动包和方言包

hibernate-5.3.20_dbt-2.0_v1.0.jar gbasedbtjdbc.jar

  1. driver-class-name: com.gbasedbt.jdbc.IfxDriver
  2. url: jdbc:gbasedbt-sqli://10.7.215.249:9088/sysmaster:GBASEDBTSERVER=gbaseserver;db_locale=zh_cn.utf8;client_locale=zh_cn.utf8;NEWCODESET=utf8,utf8,57372
  3. username: gbasedbt
  4. password: gbasedbt123
  5. dialect: org.hibernate.dialect.GBasedbtDialect

问题整理:

  1. 使用了Mybatis-plus的分页插件时,需要手动设置方言类型为POSTGRE_SQL
  2. PaginationInterceptor pageHelper=new PaginationInterceptor();
  3. pageHelper.setDialectType(DbType.POSTGRE_SQL.getDb());

  • 创建自增id语句 (SERIAL 类型表示自增)
  1. CREATE TABLE ctl_perf_auth_info (
  2. id SERIAL NOT NULL,
  3. create_time DATETIME YEAR TO FRACTION(5),
  4. remark TEXT,
  5. PRIMARY KEY (id) CONSTRAINT u564_1587
  6. )
  7. in datadbs1 ;
  • 主键自增报错:

把表的主键自增类型设置为SERIAL

  • 在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中.
  • order by 后 面的字段必须出现在select 列中。
  • 不支持IF函数,需要换成下面的写法

示例:

  1. select
  2. dvc_address as dvcAddress,
  3. dvc_name as dvcName,
  4. case when
  5. alarm_level = 1
  6. then SEND_TIMES
  7. else 0 end
  8. as low,
  9. case when
  10. alarm_level = 2
  11. then SEND_TIMES
  12. else 0 end
  13. as middle,
  14. case when
  15. alarm_level = 3
  16. then SEND_TIMES
  17. else 0 end
  18. as high
  19. from sim_d_alarm
  • 创建序列
  1. CREATE SEQUENCE sim_sequence
  2. INCREMENT BY 1 START WITH 1
  3. MAXVALUE 99999999 MINVALUE 0
  4. NOCYCLE CACHE 10 ORDER;
  • TEXT 类型的字段在数据库里无法进行比较和聚合,需要改成varchar类型
  • 不支持date_format函数,需要替换成TO_CHAR
  • concat函数只支持两个参数
  • 查询语句中的字段和表名不能使用`符号
  • group_concat函数需要替换成wm_concat()
  • boolean类型的值,不是0和1,而是 t、f,分别代表true和false,不区分大小写

例如:data_flag 的字段类型为布尔,这查询语法如下

select * from lateral_threat_main _main where _main.data_flag = 'T'
  • 不支持now()函数,需要替换成下面的写法
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual
  • 不支持LOCATE(substr,str) 函数,需要用INSTR(str,substr)代替,注意参数是反过来的
  • 大小写问题,如果设置了大小写不敏感属性,则查询语句中返回的列名全部为小写。如图所示:
  • mybatis代码分页的写法,参数需要用$符号,不能用#号

select * from t_user where 1 = 1 limit ${pageNum},${pageSize}

关键字:

user、enable、label、type...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/933815
推荐阅读
相关标签
  

闽ICP备14008679号