当前位置: 首页> 财经> 金融 > 装潢设计费用_芜湖企业_公司产品推广方案_视频号视频下载助手app

装潢设计费用_芜湖企业_公司产品推广方案_视频号视频下载助手app

时间:2025/7/11 7:44:20来源:https://blog.csdn.net/weixin_46619605/article/details/145922899 浏览次数:0次
装潢设计费用_芜湖企业_公司产品推广方案_视频号视频下载助手app

1.1 驱动兼容性
错误示例(使用MySQL驱动):

spring:  datasource:  url: jdbc:mysql://localhost:5236/test  driver-class-name: com.mysql.cj.jdbc.Driver

报错信息:
java.sql.SQLException: 不支持的数据库类型

总结:
• 达梦数据库不兼容MySQL协议(与Oracle协议更接近)
• 必须使用官方提供的DmJdbcDriver

Spring Boot 3.4适配全流程
2.1 第一步:引入达梦驱动(版本敏感!)

<!-- pom.xml -->  
<dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver</artifactId><version>8.1.3.62</version><!-- 必须与达梦版本严格匹配 --><scope>system</scope><systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
</dependency>  

避坑指南:
• 达梦驱动需从官网下载,不能通过Maven中央仓库获取
• 8.1.3.x版本仅支持JDK 17+

2.2 第二步:数据源配置(大小写敏感!)

# application.yml  
spring:
datasource:url:jdbc:dm://localhost:5236/TEST?schema=SYSDBAdriver-class-name:dm.jdbc.driver.DmDriverusername:SYSDBApassword:SYSDBA
jpa:hibernate:ddl-auto:nonedatabase-platform:org.hibernate.dialect.DmDialect  

关键配置:
• schema=SYSDBA 必须显式指定
• 达梦的Hibernate方言为 DmDialect

2.3 第三步:实体类改造(主键策略大坑)
MySQL版实体类(失效!):

@Entity  
@Data  
public class User {  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  private Long id;  
}  

达梦适配版(序列+触发器):

@Entity  
@Data
@Table(name = "\"USER\"")// 达梦表名强制大写需转义  
publicclassUser {  @Id@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_user")@SequenceGenerator(name = "seq_user", sequenceName = "SEQ_USER_ID")private Long id;  
}  

达梦操作:
– 必须手动创建序列
CREATE SEQUENCE SEQ_USER_ID START WITH 1 INCREMENT BY 1;

3.1 坑一:分页查询语法差异
MySQL写法(失效):

@Query(value = "SELECT * FROM user LIMIT ?1 OFFSET ?2", nativeQuery = true)  
List<User> findPage(int limit, int offset); 

达梦改造方案:

@Query(value = "SELECT * FROM \"USER\" OFFSET ?1 ROWS FETCH NEXT ?2 ROWS ONLY",   nativeQuery = true)  
List<User> findPage(int offset, int limit);  

3.2 坑二:事务管理器兼容性
传统配置(失效):

@Bean  
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {  return new JpaTransactionManager(emf);  
}  

达梦适配方案(必须指定方言):

@Bean  
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {  JpaTransactionManager txManager = new JpaTransactionManager();  txManager.setEntityManagerFactory(emf);  txManager.setJpaDialect(new DmJpaDialect());  // 关键配置  return txManager;  
}  

3.3 坑三:监控端点暴雷
Spring Boot Actuator默认配置(报错):

management:  endpoints:  web:  exposure:  include: health,info,datasource 

报错信息:
org.springframework.jdbc.BadSqlGrammarException: 执行SQL查询失败

修复方案(禁用不兼容端点):

management:  endpoints:  web:  exposure:  include: health,info  

3.4 坑四:连接池参数失效
通用配置(不生效):

spring:  datasource:  hikari:  maximum-pool-size: 20  

达梦专有配置:

spring:  
datasource:hikari:data-source-properties:maxPoolSize:20oracle.jdbc.J2EE13Compliant:true//必须开启  

3.5 坑五:JSON序列化异常
现象:

{  "createTime": "2024-03-20T14:30:22.123+08:00"  
}  

达梦报错:
DATE类型精度不匹配

解决方案(强制格式化):

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")  
private LocalDateTime createTime;  

性能调优
4.1 连接池监控(Druid专配)

<dependency>  <groupId>com.alibaba</groupId>  <artifactId>druid-spring-boot-starter</artifactId>  <version>1.2.21</version>  
</dependency>  
spring:  datasource:  druid:  filters: stat,wall  stat-view-servlet:  enabled: true 

4.2 执行计划分析

EXPLAIN  
SELECT * FROM "USER" WHERE name = '张三';  

达梦优化建议:
• 所有查询字段必须显式指定大小写
• 索引列避免使用函数计算

关键字:装潢设计费用_芜湖企业_公司产品推广方案_视频号视频下载助手app

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: