文章目录
什么是人大金仓
人大金仓数据库(KingbaseES)是由中国人民大学和北京人大金仓信息技术股份有限公司共同研发的一款国产关系型数据库管理系统(RDBMS)。它旨在提供一个高性能
、高可靠性
和高安全性
的数据管理解决方案,特别适合对数据安全有严格要求的行业,如政府、金融、能源等。以下是关于人大金仓数据库的一些关键信息:
- 概述
- 开发背景:人大金仓数据库的研发始于
20世纪90年代
,经过多年的迭代和发展,已经成为国内领先的自主可控数据库产品之一。- 核心技术:基于开源数据库 PostgreSQL 进行了大量优化和改进,增加了许多企业级特性和安全机制。
- 应用场景:广泛应用于电子政务、智慧城市、金融、电信、医疗等多个领域。
- 主要特点
- 高安全性
- 内置多种安全特性,包括
访问控制
、加密存储
、审计日志
等,确保数据的安全性和完整性。- 支持国密算法(如SM2、SM3、SM4),符合国家信息安全标准。
- 高度兼容性
- 提供与 Oracle 的高度兼容性,支持 PL/SQL语法和部分 Oracle 数据类型,有助于降低迁移成本。
兼容 MySQL 协议
,可以方便地替代 MySQL 使用。
- 高效性能 采用先进的查询优化器和执行引擎,能够处理复杂的查询请求并保证高效的并发处理能力。
- 支持多版本并发控制
(MVCC)
,允许读写操作并行执行,提高系统吞吐量。- 易用性和维护性
提供图形化的管理工具和命令行工具
,简化数据库的管理和维护工作。 支持在线备份和恢复
,减少停机时间,保障业务连续性。- 丰富的扩展功能
- 支持地理信息系统(GIS)、全文检索、时序数据处理等多种扩展模块,满足不同行业的特殊需求。
- 提供插件机制,用户可以根据需要定制或开发额外的功能。 良好的中文支持
- 对中文字符集的支持较为完善,适合中文环境下的应用开发。
- 版本分类
人大金仓数据库提供了多个版本以适应不同的用户群体:
(1)标准版
:适用于中小企业和一般应用,提供基本的数据管理和安全功能。
(2)企业版
:面向大型企业和复杂应用环境,增加更多高级特性和安全机制。
(3)集群版
:支持分布式部署和高可用架构,适用于对性能和可靠性要求极高的场景。 - 模式分类
人大金仓提供了多种模式, 包括了pg
、oracle
、mysql
. 分别针对不同的数据库拥有特定的兼容性.
如何使用人大金仓
下载安装包
在项目中集成人大金仓
人大金仓支持使用JDBC和MyBatis进行使用, 以下重点介绍如何使用mybatis框架来操作人大金仓.
- 在pom.xml文件中加入依赖:
<!-- https://mvnrepository.com/artifact/cn.com.kingbase/kingbase8 -->
<dependency>
<groupId>cn.com.kingbase</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
</dependency>
- 在配置文件中添加数据库相关配置信息. 如果是yml文件使用如下格式:
spring:
datasource:
driver-class-name: com.kingbase8.Driver
url: jdbc:kingbase8://localhost:54321/库名?currentSchema=mycnblog
username: 用户名
password: 密码
如果是property文件使用如下格式
jdbc.driverClassName=com.kingbase8.Driver
jdbc.url=jdbc:kingbase8://localhost:54321/库名?currentSchema=mycnblog
jdbc.username=登录名
jdbc.password=登录密码
这这里需要注意currentSchema=mycnblog
是必不可少的条件.
在关系型数据库中,Schema
是一个逻辑分组的概念,Schema
的作用类似于文件系统中的文件夹
:
- 一个数据库可以包含多个
Schema
。 - 每个
Schema
可以包含多个表。 - 不同
Schema
中的表可以有相同的名称(但互不冲突)。
在MySQL中不存在Schema的概念, 也可以理解为MySQL中一个Database只能有一个Schema.
- 接下来的使用就和mysql类似了. 在mapper文件中编写查询语句
<mapper namespace="com.example.blog.mapper.QuMapper">
<select id="" resultType="com.example.blog.entity.Test">
select * from 表名;
</select>
</mapper>