SpringBoot整合Mybatis+人大金仓(kingbase8)
陈老老老板🦸 👨💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容)
👨💻本文简述:本文讲一下Mybatis框架整合人大金仓数据库,超级详细。
👨💻上一篇文章:SpringBoot整合JPA+人大金仓(kingbase8)
👨💻有任何问题,都可以私聊我,我能帮得上的一定帮忙,感谢大佬们支持。
🦹我认为人人都可以学好编程,我愿意成为你的领路人!(需内推私聊)

一、人大金仓数据库简介
1.人大金仓是成立最早的拥有自主知识产权的国产数据库企业,以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。
2.KingbaseES是一款面向大规模并发交易处理的企业级关系型数据库。 该产品支持严格的ACID特性、结合多核架构的超凡性能、健全完善的安全标准,以及完备的高可用方案,并提供可覆盖迁移、开发及运维管理全使用周期的智能便捷工具。产品融合了人大金仓在数据库领域几十年的产品研发和企业级应用经验,可满足各行业用户多种场景的数据处理需求。
特性:
迁移开发 简单高效高度容错 稳定可靠性能强劲 表现出众系统自治 简单易用纵深防御 确保安全全面兼容 深度适配
二、Mybatis整合人大金仓
说明:本篇使用的是SpringBoot框架+Mybatis+人大金仓的整合。如果想要案例,可以直接去我的下载资源中进行下载。
项目运行环境:
idea2020.2V8jdk1.8springboot 2.3.12.RELEASE
1、创建项目
说明:其实创建项目可以省略的,但是还是给大家展示出来吧。详细的步骤就不啰嗦了。

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

2、创建与模式对应用户
说明:模式就是类似于MySQL的数据库,模式下面在创建表就类似于MySQL的表。创建与模式同名的用户(先创建用户在创建模式),用户名:oa_manager,密码:123456

设置权限,全选就可以,必须要有创建修改表的权限,否则用此用户连接数据库,通过JPA创建表的时候会因为没有权限报错。

3.创建模式
说明: 创建oa_manager模式。这样用oa_manager用户登录就可以直接连上该模式不需要指定模式。

4.创建表
说明: 创建all_user表,创建id,Integer类型,不能为空,自增。name,varchar类型,可以为空,非自增。不用插入数据,之后用JPA添加即可。

5.项目中添加坐标
说明:这里需要自己先引入与Kingbase8整合的驱动jar包,kingbase8-8.6.0.jar下载地址:官网下载地址

jar包放入的位置,要与我的一致否则有可能找不到jar。

<dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.kingbase8.jdbc</groupId><artifactId>kingbase8</artifactId><version>8.6.0</version><scope>system</scope><systemPath>${pom.basedir}/libs/kingbase8-8.6.0.jar</systemPath></dependency></dependencies>
6.编写配置文件
说明:这里提供的是yml版,想连接并且谢sql不需要使用模式名.表名,就要先创建该模式的同名用户,并用该用户进行连接。注意mapper文件位置,否则可能会报mybaits框架问题。
yml版
spring:datasource:driver-class-name: com.kingbase8.Driverurl: jdbc:kingbase8://localhost:54321/testusername: oa_managerpassword: 123456
mybatis:
# 该配置就是将带有下划线的表字段映射为驼峰格式的实体类属性
# 配置该项后,在开发中只需要根据查询返回的字段,创建好实体类就可以了configuration:map-underscore-to-camel-case: truemapper-locations: classpath*:mapper/*Mapper.xmlmapper:
# xml文件中resultMap的type、parameterType、resultType会引用一些实体类,我们需要写上全限定类名,如果不写全限定类名,只写一个实体类的名称:type-aliases-package: com.sql.kingbase8_mybatis.domain
示例样图:

7.编写实体类
说明:直接与数据库表,进行映射即可。
@Data
public class AllUser {private Integer id;private String name;}
示例样图:

8.编写UserMapper接口
说明:创建调用数据层方法的对应接口。
@Mapper
public interface UserMapper {List<AllUser> select (Integer id);void insert(String name);void delete(Integer id);List<AllUser> selectAll();void update(@Param("name") String name,@Param("id") Integer id);
}
示例样图:

9.编写对应的UserMapperxml文件
说明:创建调用数据层方法的对应接口的xml文件。
<?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.kingbase8_mybatis.mapper.UserMapper"><insert id="insert">insert into all_user(name) values (#{name});</insert><update id="update">update all_user set name = #{name} where id = #{id};</update><delete id="delete">delete from all_user where id = #{id};</delete><select id="select" resultType="AllUser">select * from all_user where id = #{id};</select><select id="selectAll" resultType="AllUser">select * from all_user;</select>
</mapper>
10.编写测试类
说明:增删改查都有,先save在update,看结果通过数据库或者select查都可以。
@SpringBootTest
class Kingbase8MybatisApplicationTests {@Autowiredprivate UserMapper userMapper;/*** 这里all_user表的id是自增,所以只传入name*/@Testvoid save(){userMapper.insert("CLLLB");this.selectAll();}/*** 通过id查询功能*/@Testvoid select() {List<AllUser> select = userMapper.select(1);System.out.println(select);}/*** 查询全部*/@Testvoid selectAll(){List<AllUser> select = userMapper.selectAll();System.out.println(select);}/*** 通过id进行修改*/@Testvoid update(){userMapper.update("陈老老老板",1);this.selectAll();}/*** 通过id删除*/@Testvoid delete(){userMapper.delete(1);this.selectAll();}}
成功示例:

oooooooooooooooooooooooooooook了,超级简单,超级详细,有问题私聊我。
总结:国产化是一个不可避免的趋势,整合国产数据库是必须要掌握的一步。希望对您有帮助,感谢阅读
结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
相关文章:
SpringBoot整合Mybatis+人大金仓(kingbase8)
陈老老老板🦸👨💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容)👨💻本文简述:本文讲一下Mybatis框架整合人…...
TPM 2.0实例探索2 —— LUKS磁盘加密(3)
接前文:TPM 2.0实例探索2 —— LUKS磁盘加密(2) 本文大部分内容参考: Code Sample: Protecting secret data and keys using Intel Platform... 二、LUKS磁盘加密实例 3. 将密码存储于TPM的LUKS 由于自动挂载需要在运行时提供一…...
嵌入式Debian主机可接HDMI显示
1、ARM是何物 ARM是一种体系架构。它使用 32 位处理器核心,采用 RISC(Reduced Instruction Set Computer,精简指令集计算机)架构,核心的运算效率高,占用空间小,功耗低,应用于便携式…...
驱动程序开发:基于ICM20608六轴传感器 --- 使用Regmap API 的 SPI 读取数据 之 IIO驱动
目录一、IIO 子系统简介二、IIO子系统使用的一些相关的结构体、函数等1、iio_dev 结构体 ①modes:是选择iio驱动设备支持的工作模式,模式分别有如下: ②dev:其是一个设备结构体。 ②channels:为 IIO 设备通道…...
专利撰写 为什么要申请专利 申请专利对个人有什么利益关系 专利申请实例 如何申请专利 专利申请办理流程
专利撰写 专利是对发明者或创造者所创造的发明或设计提供一定期限的独占权的法律保护。撰写专利需要考虑到多方面的因素,包括发明或设计的技术性、可行性、独创性、保密性等等。以下是一些关于专利撰写的常见问题和注意事项:专利类型:专利包括…...
yolov5/6/7系列模型训练日志结果数据对比分析可视化
早在之前使用yolov3和yolov4这类项目的时候可视化分析大都是自己去做的,到了yolov5的时候,变成了一个工具包了,作者全部集成进去了,这里我们以一个具体的结果为例,如下:整个训练过程产生的指标等数据都会自…...
ppppp2-23
#!/bin/sh USBFILE/etc/ppp/usbdevices LIST/etc/ppp/diallist function ec25_find_ttyname() { DEVNAME$1 FLAG0 USB_FIND_PATH/sys/bus/usb/devices for dir in $(ls $USB_FIND_PATH) do echo $(ls USBFINDPATH/USB_FIND_PATH/USBFINDPATH/dir) | grep ttyUSB > /dev…...
【GeoDjango框架解析——读取矢量数据写入postgis数据库】
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 geodjango框架解析之读取矢量数据shp文件写入postgis数据库 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录…...
注意啦!如何通过广告吸引客户直接下单?
2023年跨境电商越来越突出,据业内相关人士称,在未来几年与跨境电商相关的政策仍会继续倾斜甚至加大力度,因此各行各业都响应政策,在新政策落实之前致力于平台的转型升级,做新时代创新型的高质量发展,其实细…...
ThinkPHP ^6图片操作进阶
图片裁剪、缩略、水印不再是TP框架系统内置的功能,需要安装。 目录 安装 图片处理 1.创建图片对象 2.获取图片属性 3.裁剪图像 4.生成缩略图 6.保存图像 7.水印 安装 使用composer在项目根目录打开命令行执行: composer require topthink/think…...
深入理解JS作用域链与执行上下文
变量提升: 变量提升( hoisting )。 我可恨的 var 关键字: 你读完下面内容就会明白标题的含义,先来一段超级简单的代码: <script type"text/javascript">var str Hello JavaScript hoi…...
UnityEditor编辑器扩展代码实现Project搜索的实现功能和切换Component等
反射实现切换Gameobjecect-Comp之前介绍过Kinematic Character Controller这个插件这个插件很容易和另外一个插件混淆,两个作者头像比较相像,而且这个插件的作者不太喜欢露脸(他现在做Dot-CharacterControl去了),几乎网…...
SKAdNetwork:从0到1
一、什么是SKAdNetwork https://developer.apple.com/documentation/storekit/skadnetwork iOS14.5开始,获取IDFA需要用户确认授权才可,此时SKAdNetwork 正式回归。 SKAdNetwork 是苹果在2018年推出的一个更加保护用户隐私的归因框架,并与…...
Spring+MVC+MYbatis注解开发
Spring常见注解 注解一:Configuration 用在类上面,加上这个注解的类可以成为一个spring的xml配置文件,使用的是java代码的配置 注解二:ComponentScan 用在类上,加上注解可以指定扫描路径 注解三:创建对…...
Redis主从复制过程
将目前服务器加入到端口号为6379的从服务器 一主二仆 当期中一台从服务器宕机之后 从服务器重启之后会变成单独的主服务器,与之前的主从复制没有关系,重新使用slaceof命令才能恢复到之前一样 主服务器宕机后,从服务器不会成为主服务器&…...
Spring boot开启定时任务的三种方式(内含源代码+sql文件)
Spring boot开启定时任务的三种方式(内含源代码sql文件) 源代码sql文件下载链接地址:https://download.csdn.net/download/weixin_46411355/87486580 目录Spring boot开启定时任务的三种方式(内含源代码sql文件)源代码…...
Tekton实战案例--S2I
案例环境说明 示例项目: 代码仓库:https://gitee.com/mageedu/spring-boot-helloWorld.git 构建工具maven pipeline各Task git-clone:克隆项目的源代码 build-to-package: 代码测试,构建和打包 generate-build-id:生…...
四、使用类实现功能
使用类实现功能 ts中类的继承 ES6中class类中,属性分为:实例上的属性,原型上的方法;也可以叫做:class的属性,class的方法。 类的继承叫法:父类>子类,基类>派生类;…...
Java多线程不安全的例子
目录 1. 可见性不安全例子 2. 原子性不安全例子 3. 有序性不安全例子 1. 可见性不安全例子 可见性:一个线程对共享变量的修改,另外一个线程不能够立刻看到。 如果多线程对共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致…...
vivo X Flip会是高端手机市场的又一折叠屏爆款吗?
据多个平台消息,vivo即将推出小折叠屏手机X Flip。据了解,vivo X Flip将采用轻盈便携的竖向折叠布局,以及非常受女性消费者喜爱的结构设计。那么,vivo X Flip会是vivo折叠屏的又一个爆款吗? 一、vivo X Flip小折叠屏手…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
