springboot+mybatisplus+达梦数据库

  • 1 达梦安装
  • 2 springboot项目适配
    • 2.1 pom依赖
    • 2.2 数据库配置信息
  • 3 注意事项
  • 4 问题汇总
    • 4.1 dbType not support
    • 4.2 无效的表或视图名
    • 4.3 超过了当前用户最大连接限制

1 达梦安装

安装过程可直接看官方文档,文档上写的很详细,照着操作完全没有问题。
官方文档:https://eco.dameng.com/docs/zh-cn/start/index.html

注意先阅读一下官方提供的常见问题https://eco.dameng.com/docs/zh-cn/faq/index.html,避免进坑。。减少问题解决成本。(本人在整合中遇到几个问题后,才突然注意到官方的常见问题文档,并且之前遇到过的问题在文档中都有提到)

2 springboot项目适配

2.1 pom依赖

添加达梦数据库驱动依赖:

        <dependency><groupId>com.dameng</groupId><artifactId>Dm8JdbcDriver18</artifactId><version>8.1.1.49</version></dependency>

2.2 数据库配置信息

spring:datasource:driver-class-name: dm.jdbc.driver.DmDriverurl: jdbc:mysql://<ip>:<port>/<数据库名>?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: root

注意:需要去掉配置文件中spring.datasource.druid.filters中的wall配置,不然会报错dbType not support,详情可看问题汇总中的4.1 dbType not support。

3 注意事项

1、达梦数据库设置成大小写敏感时,小写的标识符需要用双引号括起,否则会被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写。
2、建议数据库表、列名等使用大写字母
3、资源设置注意合理性,避免发生超过最大连接限制的情况

4 问题汇总

以下是在进行整合时,遇到过的问题,在此做个记录。

4.1 dbType not support

【问题描述】:

java.lang.IllegalStateException: dbType not support : dm, url jdbc:dm://192.168.200.66:5237/DMDBUSER?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8at com.alibaba.druid.wall.WallFilter.init(WallFilter.java:167) ~[druid-1.1.20.jar:1.1.20]at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:832) ~[druid-1.1.20.jar:1.1.20]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) ~[spring-beans-5.3.21.jar:5.3.21]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1872) ~[spring-beans-5.3.21.jar:5.3.21]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.21.jar:5.3.21]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.21.jar:5.3.21]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]

【解决方法】:

因配置了 wall Filter(防火墙过滤),去掉 wall 配置,即对应配置文件里的把 fitter 的 wall 删掉即可解决,如下:

spring:datasource:druid: # filters这里的wall去掉!!!!!filters: stat,slf4jfilter:slf4j:enabled: truestat:log-slow-sql: truemerge-sql: trueslow-sql-millis: 3000# 这边的wall也得去掉!!!!!!# wall:#   config:#     ····这里的配置信息就先省略了····#   enabled: true

4.2 无效的表或视图名

【问题描述】

mybatisplus自动生成的 sql 语句查询时报错,具体报错信息如下:(原来项目使用的数据库为mysql,查询正常)

2021-07-04 12:37:05.069 [HTTPHandler-6-44] ERROR com.springbootplus.common.exception.GlobalExceptionHandler - exception:
org.springframework.dao.DataIntegrityViolationException:
### Error querying database.  Cause: dm.jdbc.driver.DMException: 第4 行附近出现错误:
无效的表或视图名[SYS_USER]
### The error may exist in com/springbootplus/system/domain/mapper/SysUserMapper.java (best guess)
### The error may involve com.springbootplus.system.domain.mapper.SysUserMapper.selectList
### The error occurred while executing a query
### SQL: SELECT  id,user_name,nick_name,password,salt,phone,email,sex,head,remark,state,department_id,version,create_time,update_time  FROM sys_user   WHERE  deleted=0  AND (user_name = ?)
### Cause: dm.jdbc.driver.DMException: 第4 行附近出现错误:
无效的表或视图名[SYS_USER]
; 第4 行附近出现错误:
无效的表或视图名[SYS_USER]; nested exception is dm.jdbc.driver.DMException: 第4 行附近出现错误:
无效的表或视图名[SYS_USER]at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104) ~[spring-jdbc-5.3.21.jar:5.3.21]at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) ~[spring-jdbc-5.3.21.jar:5.3.21]at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79) ~[spring-jdbc-5.3.21.jar:5.3.21]at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79) ~[spring-jdbc-5.3.21.jar:5.3.21]at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) ~[mybatis-spring-2.0.7.jar:2.0.7]at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) ~[mybatis-spring-2.0.7.jar:2.0.7]at com.sun.proxy.$Proxy332.selectList(Unknown Source) ~[?:?]at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) ~[mybatis-spring-2.0.7.jar:2.0.7]at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166) ~[mybatis-plus-core-3.5.2.jar:3.5.2]

【问题原因】

达梦数据库在设置成大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写。报错时,整体状态为:达梦数据库设置的为大小写敏感,数据库表及字段都为小写。由报错可只,达梦在查询时,已经将数据库表sys_user转成了大写SYS_USER进行查询,因数据库中无大写的SYS_USER表,进而查询失败。

【解决方法】

1、将达梦数据库设置为大小写不敏感
2、重新编写SQL查询语句,将数据库表名及列名使用双引号括起来
3、将数据库表及列名改为大写

4.3 超过了当前用户最大连接限制

【问题描述】

dm.jdbc.driver.DMException: 超过了当前用户最大连接限制at dm.jdbc.driver.DBError.throwException(DBError.java:635) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.n.J(MSG.java:221) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.n.G(MSG.java:181) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.n.F(MSG.java:162) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.a(DBAccess.java:759) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.login(DBAccess.java:301) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]at dm.jdbc.c.a.s(DBAccess.java:171) ~[Dm8JdbcDriver18-8.1.1.49.jar:- 8.1.1.49 - Production]

【解决方式】
打开DM管理工具,连接到数据库,选择用户 --> 管理用户 --> 选中报错项目使用的用户,右击选择修改,选择资源设置项,修改最大会话数为合适的值,也可以设置为0(无限制)。

springboot+mybatisplus+达梦数据库相关推荐

  1. 纯国产环境JAVA程序(Springboot + Mybatis + 达梦数据库)搭建

    目录 JAVA程序搭建 前言 达梦数据库安装(WINDOWS) SpringBoot项目搭建 整合达梦数据库 源码 总结 JAVA程序搭建 前言 写在前面: 文章满满干货,每一步都是自己从零开始操作并 ...

  2. 达梦DCA之SpringBoot集成达梦数据库

    受"华为.中兴事件"影响,我国科技尤其是上游核心技术受制于人的现状对我国经济发展.社会稳定等都提出了严峻考验.大力发展科技产业,鼓励科技创新,成为当下时不我待的命题.中美贸易战以来 ...

  3. springboot连接达梦数据库

    springboot连接达梦数据库 这次实战主要说springboot项目连接达梦数据库. 先准备好达梦数据库的驱动包,如下: 在执行maven命令把该驱动包安装到自己的maven仓库,命令如下: m ...

  4. 达梦(DM)4、SpringBoot集成MyBatisPlus+达梦数据库(DM)

    最近在做一个政府项目,由于项目之前使用的 MySQL 数据库,为了适配国产化,需要将 MySQL 换成 达梦数据库(DM),本次我选择了达梦数据库8(DM8),以下是切换过程 写在前面 关于Sprin ...

  5. springBoot+mybaits+达梦数据库

    近年,随着国家的呼应,越来越多的国企相关企业都面临着技术转型,其中数据库也渐渐从mysql.Oracle...转到国内呼声最高的达梦数据库:开发阶段使用一个相对陌生点的数据库还不是什么困难的业务实现, ...

  6. springboot集成达梦数据库及SET IDENTITY_INSERT为ON时问题

    集成 pom.xml <!-- 达梦数据库 --> <dependency><groupId>com.dameng</groupId><artif ...

  7. Springboot + 国产达梦数据库

    一.原有架构采用mysql,由于信创环境,需要更换国产的数据库 步骤如下 1.确定JDK版本选择对应的达梦数据库版 /**************************************** ...

  8. SpringBoot整合达梦数据库

    安装配置 软件安装 下载地址:https://www.dameng.com/view_61.html 本文以x86 win64 DM8为例 安装完毕后打开DM数据库配置助手创建数据库,设置字符集utf ...

  9. 达梦数据库项目 SpringBoot + jpa + DM8

    [帮你们填过坑了]针对国产化数据库''达梦'' Srpingboot + jpa + DM8实现增删改查 安装达梦数据库(已安装的小伙伴可以忽略这一步) 开始进入正题: 前言 : 对于要做zf行业项目 ...

最新文章

  1. Springboot 2.x上传文件大小限制
  2. php小于neq qe,PHP模板判断语句eq相等 ne、neq不相等, gt大于, lt小于
  3. java8 注解: @FunctionalInterface (函数式接口)
  4. JAVA进阶教学之(泛型)
  5. 【AI视野·今日Robot 机器人论文速览 第二期】Mon, 7 Jun 2021
  6. tableView 获取网络图片,并且设置为圆角(优化,fps)
  7. An unknown error occurred.
  8. Halcon 一维测量
  9. BP神经网络和支持向量机在R语言中的实现
  10. 深度学习网络架构(三):VGG
  11. OFFICE技术讲座:WP布局方向有哪些
  12. oracle 连接字符串备份
  13. 文法规则自顶向下分析
  14. 高通耳机阻抗估算流程
  15. Running pipenv gives TypeError: 'module' object is not callable
  16. Pyecharts 1.7.0制作图表,运行生成的html文件用浏览器打开空白问题(以桑基图为例)
  17. java 知网 语义 相似度,基于知网语义相似度的中文文本分类研究 论文笔记
  18. POI 实现Word替换文本2种情况(正常文本、表格文本)
  19. matlab 工业相机 曝光时间_工业相机的曝光、曝光时间、快门、增益
  20. Java 中this和super的用法总结

热门文章

  1. 静态原型_如何在静态,低保真和高保真原型之间做出选择
  2. java远端控制模拟灯光_基于JAVA的模拟屏控制系统软件实现
  3. Fuzz测试之libfuzzer高频报错问题FAQ
  4. oracle查询最近一个月的数据
  5. 计算机可以重复读写的存储设备是,可以重复读写的存储设备是
  6. springboot 整合 swagger2 配置账号密码登录 demo代码
  7. 用html代码写一个普通直尺,一种直尺的制作方法
  8. RFSoC应用笔记 - RF数据转换器 -02- IP配置指南
  9. 计算机二级python基本操作(for循环,数列乘法)
  10. 聊聊手机上使用的防抖技术