Mybatis整合达梦数据库

news2025/2/28 19:42:57
陈老老老板🦸
👨‍💻本文专栏:国产数据库-达梦数据库(主要讲一些达梦数据库相关的内容)
👨‍💻本文简述:本文讲一下SpringBoot整合Mybatis与达梦数据库,就是简单,一定能实现的案例。
👨‍💻上一篇文章: JPA整合达梦数据库
👨‍💻有任何问题,都可以私聊我,我能帮得上的一定帮忙,感谢大佬们支持。
🦹如果喜欢可以投个票吗?在文章最后,感谢感谢!

在这里插入图片描述

一、达梦数据库简介

说明:有关国产数据库完整的博客太少了,所以就想弄一个完整的专栏给大家提供一些帮助。在现在这种国际形势下,网络安全是每个企业,乃至整个国家重中之重的事,国产化是一种趋势,在整合之前先了解一下达梦数据库。达梦数据库官网:本篇主要讲整合,详细介绍会在别的文章中。

1.达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。
达梦数据库管理系统的最新版本是8.0版本,简称DM8。
2.DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。

二、Mybatis整合达梦数据库

说明:本篇使用的是SpringBoot框架+JPA+达梦数据库的整合。
项目运行环境:

  • idea2020.2
  • DM8
  • jdk1.8
  • springboot 2.3.12.RELEASE

1、创建项目

其实创建项目可以省略的,但是还是给大家展示出来吧。详细的步骤就不啰嗦了。

在这里插入图片描述

注:选择组件就选lombok就OK了。其实我项目中使用的是springboot2.3.12.RELEASE,因为适配用,非常的稳定。大家自己改用项目版本就可以了。

在这里插入图片描述

2、添加坐标

注:mybatis-spring-boot-starter不用写version就按springboot版本适配就行,而Dm8JdbcDriver18是8以上版本。

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        
		<!--达梦数据库驱动-->
        <dependency>
            <groupId>com.dameng</groupId>
            <artifactId>Dm8JdbcDriver18</artifactId>
            <version>8.1.1.49</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

    </dependencies>

项目截图:
在这里插入图片描述

3.编写配置文件

注:这里需要先创建一个ZY的模式,在模式下创建一个TESTDB1的表,表中字段:自增Integer id,String name。和一个叫ZY的用户名密码是123456789,这里按自己的更改就可以了,mapper-locations要注意自己的mapper的位置进行更改。

spring:
  datasource:
    url: jdbc:dm://127.0.0.1:5236?schema=ZY
    username: ZY
    password: 123456789
    driver-class-name: dm.jdbc.driver.DmDriver
mybatis:
#  注意这里按自己的mapper文件位置进行更改
  mapper-locations: classpath*:mapper/*Mapper.xml

这里给大家看一下我的项目结果,mapper的位置和yml文件。
在这里插入图片描述

4.编写实体类

注:这里如果对mybatis了解的话,就需要写一个实体类与数据库表进行映射。这里是在ZY的模式下,TESTDB1表的字段id,name。这里按自己创建的库改也没问题。

@Data
public class TestDB1 {

    private Integer id;

    private String name;
}

项目截图:
在这里插入图片描述

5.Mapper类(dao)

注:这里要注意要写@Mapper注解,才能与mapper中的sql进行映射。这里是四个方法查询、新增、修改、删除。

@Mapper
public interface TestDB1Mapper {

    List<TestDB1> select (Integer id);

    void save(String name);

    void update(@Param("id") Integer id,@Param("name") String name);

    void delete(Integer id);
}

项目截图:
在这里插入图片描述

6.Mapper.xml文件

注:这里需要注意namespace 要与Mapper类映射。id要与Mapper类中的方法名映射。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--这里表名大写小写都可以,字段大小写都可以-->
<mapper namespace="com.sql.mybatisdm.mapper.TestDB1Mapper">
    <insert id="save">
        insert into testdb1(name) values(#{name});
    </insert>

    <select id="select" resultType="com.sql.mybatisdm.domain.TestDB1">
        select id,name from testdb1 where id = #{id}
    </select>

    <update id="update" >
        update TESTDB1  set NAME = #{name} where id = #{id};
    </update>

    <delete id="delete">
        delete from TESTDB1 where id = #{id};
    </delete>


</mapper>

项目截图:
在这里插入图片描述

7.Test测试文件

注:这些方法要新填入数据,在进行其他的操作。都是ok的直接用就行,如果有问题可以私信我。

@SpringBootTest
class MybatisdmApplicationTests {

    @Autowired
    private TestDB1Mapper testDB1Mapper;

    /**
     * 保存
     */
    @Test
    void save() {
       testDB1Mapper.save("clllb");

        List<TestDB1> select = testDB1Mapper.select(1);
        System.out.println(select);
    }

    /**
     * 查询
     */
    @Test
    void select(){
        List<TestDB1> select = testDB1Mapper.select(2);
        System.out.println(select);
    }

    /**
     * 修改
     */
    @Test
    void update() {
        testDB1Mapper.update(1,"CLLLB");

        List<TestDB1> select = testDB1Mapper.select(1);
        System.out.println(select);
    }

    /**
     * 删除
     */
    @Test
    void delete(){
        testDB1Mapper.delete(1);

        List<TestDB1> select = testDB1Mapper.select(1);
        System.out.println(select);

    }


}

项目截图:
在这里插入图片描述

总结:国产化是一个不可避免的趋势,整合国产数据库是必须要掌握的一步。希望对您有帮助,感谢阅读

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。

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

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

相关文章

全网最详细|Oracle12C安装和卸载图文教程

一. 数据库的引入 以前将数据用变量、数组、对象存在内存&#xff0c;而内存只能短暂存储数据。如果我们想长久存数据用文件将数据存在磁盘上&#xff0c;不方便存取和管理数据&#xff0c;因此可以使用数据库来存数据。 二. 数据库基础概念 2.1数据库(database,简称DB) 以…

QRegExpValidator(正则验证器)

QRegExpValidator QRegExpValidator 使用正则表达式 &#xff08;regexp&#xff09; 来确定输入字符串是可接受、中间还是无效的。正则表达式可以在构建 QRegExpValidator 时提供&#xff0c;也可以在以后提供。 构造函数&#xff1a; ​ 常用的函数&#xff1a; setRegE…

在Windows上使用Docker搭建ChirpStack私有LoRa服务端

在Windows上使用Docker容器部署ChirpStack服务&#xff0c;首先若要在Windows 10或11 上运行容器&#xff0c;需要以下条件&#xff1a; 一个运行 Windows 10 或 11 专业版或企业版的物理计算机系统。Hyper-V 功能已启用。 Windows下的Docker安装 1.Docker为Windows提供了一款…

如何设计一个支撑数亿用户的系统

要设计出一套能支撑几十亿人的系统是很困难的。对于软件架构师来说&#xff0c;这一直是一项很大的挑战&#xff0c;但是&#xff0c;从现在开始&#xff0c;看完我的文章&#xff0c;你就会觉得容易很多了。 下面是我在本文中提到的几个话题&#xff1a; 从最简单的开始&…

关于大数据测试,你一定要试试python的fake库

一.背景 对于大数据相关项目的测试&#xff0c;往往需要大量的测试数据&#xff0c;而场内测试时很难获取那么大批量的真实数据&#xff0c;这个时候需要测试人员能够快速模拟出符合要求的测试数据。这个时候要是有一个自动化工具或测试脚本简直不要太爽~ 二.问题引入 对于互…

【Ajax进阶】跨域和JSONP的学习

✍️ 作者简介: 前端新手学习中。 &#x1f482; 作者主页: 作者主页查看更多前端教学 &#x1f393; 专栏分享&#xff1a;css重难点教学 Node.js教学 从头开始学习 ajax学习 文章目录了解同源策略和跨域  同源策略    什么是同源    什么是同源策略跨域    什么是…

python基础07——函数,想重复使用自己的代码就写个函数吧

目录1 函数定义与调用1.1 自定义模块函数1.2 函数的返回值 return2 参数的传递方式2.1 位置参数2.2 默认值参数2.3 关键参数2.4 可变长度参数(收集和分配参数)2.4.1 收集位置参数2.4.2 分配位置参数,函数参数的序列解包2.4.3 收集关键字参数2.4.4 分配关键字参数3 变量的作用域…

腾讯云GPU云服务器在选择实例配置时应该注意哪些事项?

腾讯云异构计算服务器搭载GPU、FPGA等异构硬件&#xff0c;具有实时高速的并行计算和浮点计算能力&#xff0c;适合于深度学习、科学计算、视频编解码和图形工作站等高性能应用&#xff0c;下面分享腾讯云NVIDIA GPU云服务器配置CPU内存性能注意事项&#xff1a; NVIDIA GPU云…

26、Stream流式计算,链式编程

Stream流式计算&#xff0c;链式编程 什么是stream流式计算&#xff1f; 大数据包括&#xff08;存储计算&#xff09; 集合&#xff0c;mysql这些是用来存储的&#xff0c;而计算是用stream流式的 题目案例&#xff1a;只用一行代码&#xff0c;完成计算这些操作 操作&…

软件工程师备考1-2章(续)

一:差错控制 (1)奇偶检验 什么意思呢? 如果我们用 奇校验,就是保证传输过来的数据中的1是奇数,如果不是奇数那么说明传输错误。 (所以会增加一位,保证正确的数据的总的1一定是奇数) (2)海明码 什么是海明距离? 两个码字,例如 0 1 0 0 和 0 0 1 0 可以看到这…

java的Excel导出方式总结

一、使用hutool导出excel 1.1 hutool介绍 hutool功能很强大&#xff0c;http请求到json处理、excel的导入导出、定时任务、IO、缓存、数据库操作等都提供了简单而方便的api供我们使用&#xff0c;好处是再也不用担心自己去整理常用的工具类了&#xff0c;同时也支持按需引入【但…

怎样在PDF上直接编辑文字?这几种编辑方法需要掌握

怎么做才能够直接在PDF文件上编辑文字呢&#xff1f;对PDF文件大家在工作中是经常使用的&#xff0c;相信大家也都亲身体验过&#xff0c;那就是经常会看见文件中有错误的地方&#xff0c;可能只是一个错别字&#xff0c;或者是图片错误&#xff0c;但我们也不得不改&#xff0…

2023年前端开发趋势未来可期

☆ 对于很多质疑&#xff0c;很多不解&#xff0c;本文将从 △ 目前企业内前端开发职业的占比&#xff1b; △ 目前业内开发语言的受欢迎程度&#xff1b; △ 近期社区问答活跃度&#xff1b; 等维度来说明目前前端这个职业的所处位置。 ☆ 还有强硬的干货&#xff0c;通过深入…

MQTT 协议的基本概念

目录 1、MQTT 介绍 2、MQTT 发布-订阅模式 &#xff08;1&#xff09;Broker 可拓展 &#xff08;2&#xff09;Broker 消息过滤 &#xff08;3&#xff09;MQTT 的主要特征是什么&#xff1f; &#xff08;4&#xff09;MQTT 和消息队列的区别 3、MQTT 客户端、 Broker…

6-TRITC 四甲基罗丹明-6-异硫氰酸 CAS 80724-20-5

产品名称&#xff1a;6-TRITC 四甲基罗丹明-6-异硫氰酸 英文名称&#xff1a;6-TRITC [Tetramethylrhodamine-6-isothiocyanate] CAS&#xff1a;80724-20-5 结构式&#xff1a; Ex (nm) 544 Em (nm) 570 分子量 479.98 溶剂 DMSO 存储条件 在零下15度以下保存, 避免光…

使用Idea新建Play项目sbt构建失败,提示scala-xml依赖冲突

最近学习scala和paly,使用idea模板创建项目后&#xff0c;项目构建时就发现报错了&#xff0c;处理了很久&#xff0c;记录一下。 错误日志: [error] (update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible: [error] […

协程原理与设计

什么是M:N协程&#xff1f;为什么要支持M:N协程&#xff1f;如何设计M:N协程&#xff1f;tRPC-Cpp引入了公司开源组件Flare/fiber作为底层库&#xff0c;本文多角度分析梳理了M:N协程的关键原理和特性。1 常见线程模型的问题 在高并发编程场景&#xff0c;如互联网后台类业务中…

尚医通 (十九) --------- 数据字典导出与导入

目录一、数据字典导出1. 导出接口封装2. 在 service-cmn 模块添加 service 方法3. 在 service-cmn 模块添加 controller 方法4. 测试5. 导出前端实现二、数据字典导入1. 导入接口封装2. 导入前端实现一、数据字典导出 1. 导出接口封装 A、在 model 模块添加导出实体 在 mode…

【论文解析】Deep Generative Models on 3D Representations: A Survey

文章目录内容组织结构3 FUNDAMENTALS3.1 Deep Generative ModelsGenerative Adversarial Networks.Variational AutoencodersNormalizing Flows.Diffusion ModelsEnergy-based model.3.2 3D RepresentationsVoxel gridsPoint cloudsMeshesNeural fieldsHybrid representation.4…

读《高性能MySQL》笔记---索引

索引是存储引擎用于快速找到记录的的一种数据结构。 索引的优点 索引大大减少服务器需要扫描的数据量。索引帮助服务器避免排序和临时表。索引将随机IO变为顺序IO。 说明&#xff1a; 顺序IO&#xff1a;是指读写操作的访问地址连续。在顺序IO访问中&#xff0c;HDD所需的磁…