Spring Boot+Mybatis+DM数据库

news2025/2/7 6:54:41

达梦数据库(DM Database)是武汉达梦数据库股份有限公司研发的新一代大型通用关系型国产数据库,全面支持 SQL 标准和主流编程语言接口/开发框架。行列融合存储技术,在兼顾 OLAP 和 OLTP 的同时,满足 HTAP 混合应用场景。


在公司项目开发过程中,项目要求使用dm数据库,在用spring boot集成mytatis+dm数据库时,遇到了一些问题,现将成功的示例分享给大家,望大家少走一些弯路。

示例包架构如下图所示

controller:示例接口

db:实体

mapper:数据库交互接口

DmDemoApp:项目启动类

maven引入相关jar包
<dependencies>
    <!-- 引入 springboot start -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!-- 引入web支持 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--  添加dm8 jdbc jar 包依赖-->
    <dependency>
        <groupId>com.dameng</groupId>
        <artifactId>DmJdbcDriver18</artifactId>
        <version>8.1.2.141</version>
    </dependency>
    <!--  引入阿里druid工具 包依赖-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.6</version>
    </dependency>
    <!--  引入lombok工具 包依赖-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.6</version>
    </dependency>
    <!-- mybatis-plus的依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.2</version>
    </dependency>
</dependencies>
设置下数据库配置信息
server:
  port: 8080
  servlet:
    context-path: /

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://172.16.3.90:5236/
    username: SYSDBA
    password: SYSDBA
    druid:
      validation-query: select 1
      test-on-borrow: false

请根据自己部署的dm数据库实际情况,调整数据库连接的相关配置,如url、username、password

 示例代码详解
  • 实体
@TableName("THC.ALARM_STRATEGY")
@Data
public class AlarmStrategy {

    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    private String strategyName;

    private String alarmType;

    private String alarmKeyword;

    private String keywordType;

    private String alarmStartTime;

    private String alarmEndTime;

    private Date createTime;

    private Date updateTime;

}

需要注意@TableName赋值的问题,在表名的前面加上schema;其次是id自增,需要建表时将id设置为“ID INT IDENTITY(1,1) NOT NULL”。

  •  数据库交互接口
@Mapper
public interface AlarmStrategyMapper extends BaseMapper<AlarmStrategy> {

}
  • 示例接口
@RequestMapping("/strategy")
@RestController
public class DbController {

	@Autowired
	private AlarmStrategyMapper alarmStrategyMapper;

	@PostMapping(value = "/list")
	public List<AlarmStrategy> listAlarmStrategy() {
		return alarmStrategyMapper.selectList(null);
	}

	@PostMapping(value = "/add")
	public String addAlarmStrategy() {
		AlarmStrategy alarmStrategy = new AlarmStrategy();
		alarmStrategy.setStrategyName("测试策略1");
		alarmStrategy.setCreateTime(new Date());
		alarmStrategy.setUpdateTime(new Date());

		alarmStrategyMapper.insert(alarmStrategy);
		return "ok";
	}

}
  • 建表语句
CREATE TABLE THC.ALARM_STRATEGY (
	ID INT IDENTITY(1,1) NOT NULL,
	STRATEGY_NAME VARCHAR(100) NULL,
	ALARM_TYPE VARCHAR(100) NULL,
	ALARM_KEYWORD VARCHAR(100) NULL,
	KEYWORD_TYPE VARCHAR(100) NULL,
	ALARM_START_TIME VARCHAR(100) NULL,
	ALARM_END_TIME VARCHAR(100) NULL,
	CREATE_TIME VARCHAR(100) NULL,
	UPDATE_TIME VARCHAR(100) NULL
);

需要注意schema名称,这里使用的时THC。

 最后将整个示例提供给大家参考。

如果对你有所帮助,请点赞支持一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1598475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

E9:拦截流程系统管理员操作记录,流转记录不显示(ECODE)

效果&#xff1a; ecodeSDK.rewriteApiDataQueueSet({fn: (url, params, data) > {const { hash } window.location;if (!hash.startsWith(#/main/workflow/req)) return false; // 判断页面地址if (!ecCom.WeaTools.Base64) return false; // 完整组件库加载完成if (!W…

【RabbitMQ】RabbitMQ基础认识

文章目录 前言初识MQSpringAMQP如何首发消息&#xff1f;消费者交换机Fanout&#xff1a;广播Direct交换机Topic交换机声明队列和交换机 总结 前言 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这…

【五十一】【算法分析与设计】KMP 算法,KMP 算法的作用,KMP 算法流程,KMP 算法证明,KMP 算法代码

目录 KMP 算法的作用&#xff0c;解决的问题 KMP 算法的流程 Next 数组 KMP 算法正式过程 KMP 算法的证明过程 Next 数组的求法 Next 数组求法的证明过程 KMP 算法代码 结尾 KMP 算法的作用&#xff0c;解决的问题 1. 首先给你一个字符串 str&#xff0c;然后又给你…

酷开系统丨酷开科技打造P9系列智能投影,让智能化更进一步

近些年&#xff0c;随着科技的进步&#xff0c;家用投影仪已经成为家庭娱乐中不可或缺的一部分。尤其对年轻人来说&#xff0c;他们更喜欢在巨幕上看电影、玩游戏或听歌唱歌&#xff0c;投影仪在巨幕上的光影效果确实能带来更好的沉浸感体验&#xff0c;但这也是需要强大的系统…

OpenHarmony实战开发-页面深色模式适配。

介绍 本示例介绍在开发应用以适应深色模式时&#xff0c;对于深色和浅色模式的适配方案&#xff0c;采取了多种策略如下&#xff1a; 1. 固定属性适配&#xff1a;对于部分组件的颜色属性&#xff0c;如背景色或字体颜色&#xff0c;若保持不变&#xff0c;可直接设定固定色值…

零基础也可以学习的医疗设备维修技能

零基础也可以学习的维修技能 解锁工程师的隐藏潜能&#xff01; 您是否曾因维修问题而感到束手无策&#xff1f; 彩虹医疗影像培训课程不仅提供技能&#xff0c; 更能为您提供自信。不再需要依赖他人&#xff0c; 您将成为故障排查的行家。迎接更具挑战性的机会&#xff0…

C#引用外部组件的常用方法

我们在开发程序过程中&#xff0c;时常会使用到第三方组件&#xff0c;比如一些通信、UI组件等。常用的引用方法有下面几种。 01 NuGet引用 NuGet是.NET的一个包管理平台&#xff0c;很多开源组件会通过NuGet进行管理和发布。比如我们常用的S7NetPlus等。 从NuGet中引用组件…

鸿蒙OS开发指导:【应用包签名工具】

编译构建 该工具基于Maven3编译构建&#xff0c;请确认环境已安装配置Maven3环境&#xff0c;并且版本正确 mvn -version下载代码&#xff0c;命令行打开文件目录至developtools_hapsigner/hapsigntool&#xff0c;执行命令进行编译打包 mvn package编译后得到二进制文件&…

(python)远程操作模块-Paramiko

目录 前言 安装 流程 范例 优点 缺点 需要注意的事项 前言 Paramiko 是一个用于 Python 的模块&#xff0c;用于实现 SSH 客户端和服务器。使用 Paramiko&#xff0c;你可以在 Python 中进行 SSH 连接&#xff0c;并执行远程命令、传输文件等操作。 安装 pip install p…

[leetcode] max-area-of-island

. - 力扣&#xff08;LeetCode&#xff09; 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&…

模仿SpringSecurity配置文件的写法对mybatisPlus查询方法的改造

使用mybatisPlus查询数据的传统流程是&#xff1a;Autowired mapper对象。new Wrapper 一通乱set Wrapper ,select xxx。但实际开发中&#xff0c;还有很大的改进空间&#xff0c;一是一些脆弱的参数设置有多处&#xff0c;得不到妥善维护&#xff0c;二是代码编写丑陋难看。因…

重生奇迹mu怎么转职

一转&#xff1a;一转的等级是180级&#xff0c;要求就是材料帝王之书收集2本&#xff0c;还需要7万金币就可以直接转职了&#xff0c;帝王之术就是任务了&#xff0c;在任务那里可以看到转职任务&#xff0c;我们只要做了转职任务就可以收集完了&#xff0c;一转分别叫做&…

springboot直接运行 java-jar

一、问题 springboot 为什么能通过java-jar运行&#xff0c;打包的时候也把tomcat打了吗&#xff1f; 二、解答 Spring Boot 应用程序通常打包成可执行的 JAR 文件&#xff0c;并且可以通过 java -jar 命令来运行。这是因为 Spring Boot 在打包时会将应用程序本身和嵌入的 T…

振弦式渗压计的安装与防护:在水工建筑物中的关键应用

振弦式渗压计&#xff0c;作为一种高效的孔隙水压力或液体液位测量工具&#xff0c;广泛应用于水工建筑物、基岩内、测压管、钻孔、堤坝、管道和压力容器内。其安装和防护工作至关重要&#xff0c;直接关系到测量数据的准确性和仪器的使用寿命。本文将重点探讨振弦式渗压计在填…

武汉星起航引领跨境电商新浪潮,与亚马逊携手共拓全球市场

在全球贸易日益繁荣的当下&#xff0c;跨境电商行业正迎来前所未有的发展机遇。武汉星起航电子商务有限公司&#xff0c;作为跨境电商领域的佼佼者&#xff0c;凭借其前瞻性的战略布局和强大的运营能力&#xff0c;与亚马逊跨境电商平台紧密合作&#xff0c;共同推动全球贸易的…

【C语言】<动态内存管理>我的C语言终末章

&#xff1c;动态内存管理&#xff1e; 1. 为什么要有动态内存分配2. malloc和free2.1 malloc2.2 free 3. calloc和realloc3.1 calloc3.2 realloc 4.常见的动态内存错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释…

为什么公司在访问控制中转向人工智能

门禁系统通过帮助维护安全和保护资产来实现基本功能。另一方面&#xff0c;传统的访问控制方法有许多缺点&#xff0c;可能不如理想情况下有效。人工智能 &#xff08;AI&#xff09; 正成为企业改进访问控制措施的越来越受欢迎的选择&#xff0c;作为弥补上述缺陷的一种手段。…

区块链安全-----接口测试-Postman

Postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易 用性好 。无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;Postman都是我们的首选工具 之一 。 更早的接入测试&#xff0c;更早的发现问…

Matroska解封装原理与实践

本期作者 背景 Matroska是一种开放标准、功能强大的多媒体封装格式&#xff0c;可容纳多种不同类型的视频、音频及字幕流&#xff0c;其常见的文件扩展名为.mkv、.mka等。与应用广泛的MP4相比&#xff0c;Matroska更加灵活开放&#xff0c;可以同时容纳多个字幕&#xff0c;甚至…

B端:导航条长得不都一样吗?错了,这里看过来就懂了。

B端导航条看似都一样&#xff0c;大差不差&#xff0c;仔细看一下&#xff0c;其实各有各的不同&#xff0c;这里方向了十多个&#xff0c;大家仔细看细节。