当前位置: 首页 > news >正文

有哪些做产品产业链分析的网站免费制作网站app

有哪些做产品产业链分析的网站,免费制作网站app,长春商城网站建设,沙河网站建设达梦数据库踩坑合集 文章目录 安装达梦设置大小写不敏感Spring boot引入达梦驱动(两种方式)将jar包打入本地maven仓库使用国内maven仓库(阿里云镜像) 达梦驱动yml配置springboot mybatis-plus整合达梦,如何避免指定数据库名&…

达梦数据库踩坑合集

文章目录

  • 安装达梦设置大小写不敏感
  • Spring boot引入达梦驱动(两种方式)
    • 将jar包打入本地maven仓库
    • 使用国内maven仓库(阿里云镜像)
  • 达梦驱动yml配置
  • springboot + mybatis-plus整合达梦,如何避免指定数据库名,设置指定库的指定数据库
    • 错误信息
    • 解决方案
  • 达梦 + mybatis timestamp、datetime 和 MySQL中的datetime数据类型的映射
    • 问题背景
    • 解决方案
  • 达梦TEXT数据类型在Java中不能映射为String类型
    • 错误信息
    • 解决方案
  • 达梦数据库将TEXT类型的字段更改为VARCHAR失败
    • 错误信息
    • 解决方案
  • 达梦数据库查询数据 No serializer found for class dm.jdbc.a.a.a and no properties discovered to create BeanSerializer
    • 错误原因
    • 解决方式
  • Error flushing statements. Cause: dm.jdbc.driver.DMException: 当前连接为只读状态
  • 参考博客

安装达梦设置大小写不敏感

达梦的大小写敏感设置,只能在安装的时候设置好,安装完成之后不可更改。我是用的是docker安装。在环境变量里设置"-e CASE_SENSITIVE=0",命令如下:

docker run -tid -p 5236:5236 --restart=always --name dm8 --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8 -e CASE_SENSITIVE=0 -v /dm8_docker/data:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64

如果已经安装了,并且是大小写敏感的。需要将容器停止,然后删除容器,并将挂载目录(这里是 /dm8_docker/data)下的文件一起删掉。再重新执行以上命令。

# 进入容器: 
docker exec -it 7ccc57b47de3 /bin/bash
# 进入数据库: 
/opt/dmdbms/bin/disql
# 输入超级管理员账号和密码
# 达梦默认的账号密码是:
# 	username:SYSDBA
# 	password: SYSDBA001

附上官网截图:
在这里插入图片描述

Spring boot引入达梦驱动(两种方式)

将jar包打入本地maven仓库

  1. 从官网下载对应版本的jar包(官网:https://eco.dameng.com/document/dm/zh-cn/app-dev/),选择对应的语言、版本号和技术栈,我这里使用的是mybatis-plus。
    在这里插入图片描述

  2. 下载好之后,解压压缩包,进入压缩包文件夹
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 在地址栏输入cmd,进入命令行,输入打包命令
    在这里插入图片描述

mvn install:install-file -Dfile=DmJdbcDriver18.jar -DgroupId=com.dm -DartifactId=DmJdbcDriver18 -Dversion=1.8 -Dpackaging=jar

出现build success即为成功。
在这里插入图片描述
本地仓库中存在了,即可在pom中直接引用

<dependency><groupId>com.dm</groupId><artifactId>DmJdbcDriver18</artifactId><version>1.8</version>
</dependency>

使用国内maven仓库(阿里云镜像)

maven坐标如下:

<dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.1.193</version>
</dependency>

拉取完成即可配置达梦数据库驱动。

达梦驱动yml配置

起因:
因为当前项目是基于MySQL数据做的,中途需要做信创,所以对达梦做的兼容。本人马大哈,一直启动不起来,报找不到达梦驱动 Caused by: java.lang.ClassNotFoundException: com.dm.jdbc.Driver 。
解决:
找了很多别人的yml配置,才发现自己把驱动的类名写错了。

错误写法:com.dm.jdbc.Driver
正确写法:dm.jdbc.driver.DmDriver

#   达梦数据库连接配置datasource:driver-class-name: dm.jdbc.driver.DmDriverurl: jdbc:dm://111.11.11.111:5236/MYDB?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghaiusername: MYDBpassword: 123456maxPoolSize: 100minPoolSize: 5

另外,还需要注意的是,url的配置,前缀是jdbc:dm//,因为我直接把mysql的配置C过来了,然后报错ERROR [com.alibaba.druid.pool.DruidDataSource] - create connection SQLException, url: jdbc:mysql://111.11.11.111:5236/MYDB?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai, errorCode 0, state null 。
啊!我真菜!

springboot + mybatis-plus整合达梦,如何避免指定数据库名,设置指定库的指定数据库

错误信息

无效的表或视图名

### Cause: dm.jdbc.driver.DMException: 第1 行附近出现错误:
无效的表或视图名[t_authentication]
; 第1 行附近出现错误:
无效的表或视图名[t_authentication]; nested exception is dm.jdbc.driver.DMException: 第1 行附近出现错误:
无效的表或视图名[t_authentication]

将SQL放入达梦管理工具查询:
在这里插入图片描述
查询的表无法确认是哪一个模式中的,所以需要指定每一个实体的对应模式。

解决方案

如果在代码中每个去加模式名或视图名,那么代码和数据库的绑定关系过于紧密,不符合开发常识。

达梦数据库中一个数据库用户创建之后会自动生成一个默认的模式,默认模式名与用户名相同。使用默认模式名,可以避免在mybatis中的操作均需要加上模式名。

所以我们需要创建一个和模式名(库名)相同的用户,使用新建的用户登录,来访问对应的模式(库)。

  • 创建用户,在达梦管理工具的【用户】栏下,选择【管理用户】,右键,选择【新建用户】
    在这里插入图片描述
  • 填写好用户名(对应模式名,保持一致)、密码,配置用户角色和系统权限等信息即可。
    在这里插入图片描述
  • 使用新建的用户登录连接,即可看见对应名称的模式(库),然后在改模式下创建我们需要的数据表,完成之后,就可以不用添加模式前缀名,访问默认模式中的数据了。

达梦 + mybatis timestamp、datetime 和 MySQL中的datetime数据类型的映射

问题背景

因为项目原有的数据库为MySQL数据库,里面的create_time和update_time等字段均为datetime数据类型,对应Java的数据类型为Date()。

现在将MySQL的数据通过达梦数据迁移工具,将部分表导入到达梦,达梦中的日期类型就全都变为timestamp类型,导致mybatis在对数据进行新增时,默认日期字段的精度会在时分秒的后面拼接一个.023这类的数字。出现如下错误:

ClassTempItemValueMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: 字符串截断
; 字符串截断; nested exception is java.sql.BatchUpdateException: 字符串截断
org.springframework.dao.DataIntegrityViolationException: com.ccnest.common.core.classtemp.mapper.ClassTempItemValueMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: 字符串截断
; 字符串截断; nested exception is java.sql.BatchUpdateException: 字符串截断

解决方案

将达梦中的timestamp数据类型改为DATETIME
在这里插入图片描述
对象实体中为:

    /*** 创建时间*/@TableField(value = "created_time", fill = FieldFill.INSERT)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createdTime;/*** 更新时间*/@TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date updatedTime;

字符串截断的问题,还有可能是导入的时候,达梦将某些数据的字符串长度识别为1,或者较短的长度,导入达梦之后需要重新校验一下数据表的参数设置

达梦TEXT数据类型在Java中不能映射为String类型

错误信息

### Cause: dm.jdbc.driver.DMException: 第1 行附近出现错误:
数据类型不匹配
; 第1 行附近出现错误:
数据类型不匹配; nested exception is dm.jdbc.driver.DMException: 第1 行附近出现错误:
数据类型不匹配

解决方案

为保持MySQL和达梦对应Java中的数据类型不变,所以我这里采用的是修改达梦的字段数据类型为VARCHAR。
附上Java与达梦数据类型映射表,如下(供参考)
在这里插入图片描述

达梦数据库将TEXT类型的字段更改为VARCHAR失败

错误信息

错误消息: 第1 行附近出现错误:
数据类型的变更无效

在这里插入图片描述

解决方案

1、将字段删除重新加(弊端,非空情况,可能删不掉已存在的数据)
2、将数据备份出来,删除表,重新创建表,并导入数据

  • 将所需表的数据全都查询出来
    在这里插入图片描述
  • ctrl+A 全选,右键选择【导出所有】
    在这里插入图片描述

在这里插入图片描述

  • 将需要删除的表的DDL拷贝出来
    在这里插入图片描述
  • 将需要改为TEXT数据类型的定义改为VARCHAR
    在这里插入图片描述

达梦数据库查询数据 No serializer found for class dm.jdbc.a.a.a and no properties discovered to create BeanSerializer

完整错误信息如下:

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class dm.jdbc.a.a.a and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ccnest.base.aop.ResponseResult["data"]->com.baomidou.mybatisplus.extension.plugins.pagination.Page["records"]->java.util.ArrayList[0]->com.ccnest.common.core.flow.entity.vo.FlowNodeInstanceListVO["nodeVOs"]->java.util.HashMap["aafcf027e36c3cbb86e35abf88ee7425"]->java.util.ArrayList[0]->com.ccnest.common.core.flow.entity.vo.FlowNodeInstanceVO["itemValueList"]->java.util.ArrayList[0]->com.ccnest.common.core.flow.entity.vo.ItemValueVO["value"]->dm.jdbc.driver.DmdbNClob["connection"]->dm.jdbc.driver.DmdbConnection["dbAccess"]->dm.jdbc.a.a["b"])at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1300)at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:46)at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:29)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:808)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:764)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:720)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:35)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)

错误原因

因为Jackson在序列化的时候无法对值进行读写了

解决方式

1、修改yml配置

这个方法对于我的项目中无效。

spring:jackson: serialization: FAIL_ON_EMPTY_BEANS: false # 关闭

2、给传递的实体增加getter()和setter()方法,并加上有参构造和无参构造,例如:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}
}

但是对于我的项目也没有生效。

3、使用自定义的HttpMessageConverter(亲测可用)

@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void extendMessageConverters(List<HttpMessageConverter<?>> converters) {FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));converters.add(0, converter);}}

Error flushing statements. Cause: dm.jdbc.driver.DMException: 当前连接为只读状态

在使用spring boot + mybatis-plus是,将业务实现类xxxImpl的隔离级别写成了

@Transactional(readOnly = true, propagation = Propagation.REQUIRED)

改成

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

真是不可思议,这么久都没发现

参考博客

  • JAVA数据类型对应DM数据库类型
  • 达梦数据库表导出的两种方法
  • 达梦数据库将TEXT类型的字段更改为VARCHAR失败
  • No serializer found for class dm.jdbc.a.a.a and no properties discovered to create BeanSerializer 达梦
  • 达梦数据库用户与模式

文章转载自:
http://guestly.bqyb.cn
http://sauna.bqyb.cn
http://chitlins.bqyb.cn
http://oao.bqyb.cn
http://gsv.bqyb.cn
http://cordillera.bqyb.cn
http://strapwork.bqyb.cn
http://nymphomaniacal.bqyb.cn
http://concubinal.bqyb.cn
http://unharness.bqyb.cn
http://palsa.bqyb.cn
http://jv.bqyb.cn
http://tannoy.bqyb.cn
http://vidifont.bqyb.cn
http://skimpy.bqyb.cn
http://sarrusophone.bqyb.cn
http://showman.bqyb.cn
http://deianira.bqyb.cn
http://ungrave.bqyb.cn
http://quaker.bqyb.cn
http://libra.bqyb.cn
http://analogy.bqyb.cn
http://ruga.bqyb.cn
http://cassino.bqyb.cn
http://annulate.bqyb.cn
http://grayness.bqyb.cn
http://loathsome.bqyb.cn
http://moray.bqyb.cn
http://arms.bqyb.cn
http://autogenetic.bqyb.cn
http://fractus.bqyb.cn
http://inability.bqyb.cn
http://saltire.bqyb.cn
http://spheroidal.bqyb.cn
http://communally.bqyb.cn
http://sexploiter.bqyb.cn
http://deviltry.bqyb.cn
http://fermentation.bqyb.cn
http://concordat.bqyb.cn
http://hyperaggressive.bqyb.cn
http://superfamily.bqyb.cn
http://fructification.bqyb.cn
http://preganglionic.bqyb.cn
http://aye.bqyb.cn
http://rottweiler.bqyb.cn
http://vitativeness.bqyb.cn
http://ecocide.bqyb.cn
http://headdress.bqyb.cn
http://florida.bqyb.cn
http://raisonneur.bqyb.cn
http://quagmire.bqyb.cn
http://hopvine.bqyb.cn
http://fiume.bqyb.cn
http://casque.bqyb.cn
http://automorphic.bqyb.cn
http://wobbulator.bqyb.cn
http://cityscape.bqyb.cn
http://escallonia.bqyb.cn
http://taking.bqyb.cn
http://onychophagia.bqyb.cn
http://makuta.bqyb.cn
http://retrain.bqyb.cn
http://oscillogram.bqyb.cn
http://mondrian.bqyb.cn
http://shellcracker.bqyb.cn
http://mab.bqyb.cn
http://domesticity.bqyb.cn
http://obelisk.bqyb.cn
http://vandyked.bqyb.cn
http://galbulus.bqyb.cn
http://draught.bqyb.cn
http://franklinite.bqyb.cn
http://balsas.bqyb.cn
http://constabulary.bqyb.cn
http://dormantpartner.bqyb.cn
http://hostile.bqyb.cn
http://boomerang.bqyb.cn
http://overlaid.bqyb.cn
http://taxite.bqyb.cn
http://sorites.bqyb.cn
http://vtech.bqyb.cn
http://logman.bqyb.cn
http://condemnation.bqyb.cn
http://skeleton.bqyb.cn
http://capote.bqyb.cn
http://aia.bqyb.cn
http://hemizygote.bqyb.cn
http://bottomland.bqyb.cn
http://backspace.bqyb.cn
http://anodize.bqyb.cn
http://drabble.bqyb.cn
http://humanist.bqyb.cn
http://omphale.bqyb.cn
http://furunculoid.bqyb.cn
http://ovibos.bqyb.cn
http://ganosis.bqyb.cn
http://azrael.bqyb.cn
http://conspicuity.bqyb.cn
http://demit.bqyb.cn
http://tachygraphy.bqyb.cn
http://www.15wanjia.com/news/105559.html

相关文章:

  • 南京建设信息网站宁波网站排名优化seo
  • 国外企业网站建设模型seo网站推广专员
  • 菏泽网站建设网站策划网络营销方案
  • 做类似知乎网站优化排名
  • 网站设计可以吗湖南株洲疫情最新情况
  • 南昌做网站的公司哪家好前端性能优化有哪些方法
  • 新手学做网站要花钱么nba球队排名
  • 做网站博彩代理违法吗惠州seo推广外包
  • 深圳网站建设最好网店产品seo如何优化
  • 长春个人网站制作公司国内疫情最新情况
  • 白日梦怎么做的网站怎么被百度收录
  • 深圳招聘网站net的网站建设
  • 门户网站建站目标网站目录扫描
  • 网站备案 固定电话学做网站培训班要多少钱
  • 企业网站内的问答模式怎么做最新新闻热点事件及评论
  • 免费电商网站模板外贸建站教程
  • 网站如何做excel预览seo网站优化知识
  • 深圳沙井做网站公司网络营销seo是什么意思
  • 触屏版网站模板长沙关键词自然排名
  • 做庭院的网站爱站关键词
  • 云阳网站建设下载关键词推广软件
  • 做编程的网站一个月多少钱百度seo优化培训
  • 有没有代做模型的网站软件外包企业排名
  • 怎么做家具网站百度seo培训课程
  • 上海网站开发百度手机版网页
  • 网站建设策划 流程如何优化关键词的排名
  • 下瓦房做网站公司百度推广
  • 网站怎样运营新品推广策划方案
  • 如何完善网站安全和技术建设免费行情网站的推荐理由
  • 做网站需要干什么推广赚钱的软件