SpringBoot整合Mybatis+人大金仓(kingbase8)

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

在这里插入图片描述

一、人大金仓数据库简介

1.人大金仓是成立最早的拥有自主知识产权的国产数据库企业,以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。
2.KingbaseES是一款面向大规模并发交易处理的企业级关系型数据库。 该产品支持严格的ACID特性、结合多核架构的超凡性能、健全完善的安全标准,以及完备的高可用方案,并提供可覆盖迁移、开发及运维管理全使用周期的智能便捷工具。产品融合了人大金仓在数据库领域几十年的产品研发和企业级应用经验,可满足各行业用户多种场景的数据处理需求

特性:

  • 迁移开发 简单高效
  • 高度容错 稳定可靠
  • 性能强劲 表现出众
  • 系统自治 简单易用
  • 纵深防御 确保安全
  • 全面兼容 深度适配

二、Mybatis整合人大金仓

说明:本篇使用的是SpringBoot框架+Mybatis+人大金仓的整合。如果想要案例,可以直接去我的下载资源中进行下载。
项目运行环境:

  • idea2020.2
  • V8
  • jdk1.8
  • springboot 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了,超级简单,超级详细,有问题私聊我。

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

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

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

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

相关文章

Centos7下搭建H3C log服务器

rsyslogH3C 安装rsyslog服务器 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config && setenforce 0centos7服务器&#xff0c;通过yum安装rsyslog yum -y install rsysl…

Swift语言配合HTTP写的一个爬虫程序

下段代码使用Embassy库编写一个Swift爬虫程序来爬取jshk的内容。我会使用proxy_host为duoip&#xff0c;proxy_port为8000的爬虫IP服务器。 使用Embassy库编写一个Swift爬虫程序可以实现从网页上抓取数据的功能。下面是一个简单的步骤&#xff1a; 1、首先&#xff0c;需要在X…

Java Web 安全实战:从登录到退出

Java Web 安全实战&#xff1a;从登录到退出 1. 介绍 在当今互联网时代&#xff0c;用户信息安全至关重要。在Java Web开发中&#xff0c;Spring Security是一个强大且灵活的身份验证和访问控制框架&#xff0c;它可以帮助我们构建安全可靠的应用程序。本文将介绍如何使用Spr…

vue使用websocket与springboot通信

WebSocket是HTML5下一种新的协议&#xff0c;它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通讯的目的 在很多项目中&#xff0c;都要用到websocket&#xff0c;使得前端页面与后端页进行实时通信&#xff0c;例如&#xff0c;实时查询…

Vue3:自定义图标选择器(包含 SVG 图标封装)

文章目录 一、准备工作&#xff08;在 Vue3 中使用 SVG&#xff09;二、封装 SVG三、封装图标选择器四、Demo 效果预览&#xff1a; 一、准备工作&#xff08;在 Vue3 中使用 SVG&#xff09; 本文参考&#xff1a;https://blog.csdn.net/houtengyang/article/details/1290431…

Tcl语言:SDC约束命令create_generated_clock详解(下)

相关阅读 Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 设定生成时钟特性 前文的末尾提到&#xff0c;当使用-divide by或-multiply_by选项创建生成时钟时&#xff0c;会根据master clock的时钟周期派生出生成时钟的周期&am…

239.滑动窗口的最大值

原题链接&#xff1a;239.滑动窗口的最大值 不是很懂&#xff0c;需要复刷 全代码&#xff1a; class Solution { private:class MyQueue { //单调队列&#xff08;从大到小&#xff09;public:deque<int> que; // 使用deque来实现单调队列// 每次弹出的时候&#xff…

YOLOv5独家改进:分层特征融合策略MSBlock | 南开大学提出YOLO-MS |超越YOLOv8与RTMDet,即插即用打破性能瓶颈

💡💡💡本文独家改进:分层特征融合策略MSBlock,不同Kernel-Size卷积在不同尺度提升特征提取能力,最终引入到YOLOv5,做到二次创新 1)MSBlock使用;2)和C3结合使用 推荐指数:5颗星 MSBlock | 亲测在多个数据集能够实现大幅涨点,小目标检测效果也不错 💡💡…

Docker的安装以及使用

每次安装Docker都会报一堆错&#xff0c;痛定思痛干脆自己总结一篇&#xff01;&#xff01;&#xff01; Docker的安装 卸载系统自带的旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc 获取软件最新源 sudo apt-get update 安装apt依赖包 s…

vue3中el-tree设置默认选中节点和展开节点

1.el-tree设置 node-key&#xff0c;current-node-key&#xff0c;default-expanded-keys&#xff0c;highlight-current&#xff1a; <el-tree ref"taskTree" :data"ptreeData" node-key"key" :current-node-key"currentKey" …

yum工具的使用

yum工具的使用 rpm的弊端 前面我们讲了下rpm&#xff0c;那么rpm有什么弊端呢&#xff1f;其弊端是显而易见的&#xff0c;当用rpm安装软件时&#xff0c;若遇到有依赖关系的软件&#xff0c;必须先安装依赖的软件才能继续安装我们要安装的软件&#xff0c;当依赖关系很复杂的…

[CISCN 2023 初赛]go_session

文章目录 考点代码审计main.goroute.goIndex函数Admin函数Flask函数 解题过程伪造session获取server.py构造payload覆盖server.py命令执行 考点 session伪造&#xff0c;pongo2模板注入&#xff0c;debug模式覆盖源文件 代码审计 main.go package mainimport ("github.c…

正则表达式:掌握文本处理的秘密武器

当我们处理文本数据时&#xff0c;正则表达式是一种强大的工具&#xff0c;可以帮助我们快速、准确地找到所需的信息。通过匹配和筛选文本模式&#xff0c;正则表达式可以简化文本处理任务&#xff0c;提高工作效率。本文将带你走进正则表达式的世界&#xff0c;探讨它的工作原…

汇编-变量

.386 .model flat,stdcall option casemap:none.data sum DWORD 0 ;创建一个全局变量&#xff0c;取名sum,初始化0 sum1 DWORD ? ;创建一个全局变量sum1,无初始化 ;问号(?)初始化值使得变量未被初始化&#xff0c;这意味着在运行时才会为该变量分配一个值 ;变量名…

【Node.js入门】1.3 开始开发Node.js应用程序

1.3 开始开发Node.js应用程序 学习目标 &#xff08;1&#xff09;熟悉开发工具Visual Studio Code的基本使用&#xff1b; &#xff08;2&#xff09;掌握Node.js应用程序的编写、运行和调试的基本方法。 构建第一个 Node.js应用程序 代码 const http require("htt…

【小技巧】WPS统计纯汉字(不计标点符号)

【小技巧】WPS统计纯汉字&#xff08;不计标点符号&#xff09; 首先&#xff0c;CtrlF打开查找页面&#xff1a; 选择“高级搜索”&#xff0c;然后勾选“使用通配符”&#xff0c;然后在“查找内容”后面输入&#xff1a;[一-﨩]。注意&#xff1a;一定要带“[]”和“-”且…

算法leetcode|87. 扰乱字符串(rust重拳出击)

文章目录 87. 扰乱字符串&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 87. 扰乱字符串&#xff1a; 使用下面描述…

web前端——HTML+CSS实现九宫格

web前端——HTMLCSS实现九宫格 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…

C 和 C++ 可变参数介绍

文章目录 前言概念C 的可变参数参数列表 #va_list 4组宏 C 的可变参数参数列表 #va_list 4组宏初始化列表 initializer_list<> 类模板可变参数模板 总结参考资料作者的话 前言 C 和 C 可变参数介绍。 概念 可变&#xff08;长&#xff09;/不定&#xff08;长&#xff…

10道高频Vuex面试题快问快答

※其他的快问快答&#xff0c;看这里&#xff01; 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…