国产数据库-虚谷 使用记录

本文档基于虚谷数据库12.0.0版本,单机部署模式的情况下的使用介绍。

虚谷数据库是一款自主原创、安全可靠、功能强大、性能优越的关系型数据库管理系统,支持SQL(Structured Query Language)标准语法,支持标准化、双机高可用、分布式集群部署,提供国产化、面向多核的高性能和数据安全服务,融合成都虚谷伟业科技有限公司在数据库领域20多年的研发经验沉淀,结合各类关系型数据库的应用场景需求,持续构建竞争力特性。

虚谷数据库采用NEWSQL架构从0开始设计,即一个无状态的SQL引擎与一个通用(与逻辑解耦)的存储引擎加上管理引擎构建的产品。整个产品采用的是单进程多线程模型,所有的数据库任务(计算、存储、管理)可以独占或混合在单个进程中,所以具有从1到N无缝扩展的特性。

虚谷数据库的定位是通用型、透明化、高性能的单机分布式一体化数据库。

系统配置(${XUGU_HOME}/SETUP/xugu.ini):

max_trans_modify = 0; 单个事务最大允许变更行数(0表示不限制)。当批量写入超过其默认值时,可以修改此参数。

data_buff_mem = 5120; 数据缓冲区内存(单位:M)

swap_buff_mem = 256; 交换缓冲区内存(单位:M)

system_sga_mem = 512; 系统全局区内存(单位:M)

数据库启停:

#后台启动
/data/xugu_sp/BIN/xugu_linux_x86_64_XXX_sp -service 
#前台启动,随着窗口关闭结束命令
/data/xugu_sp/BIN/xugu_linux_x86_64_XXX_sp -child 
#关闭数据库,进入数据库后执行如下命令
shutdown immediate;
#查看数据库进程是否停止
ps -ef | grep xugu 

**进入数据库:**数据库默认端口 5138

xgconsole nssl 127.0.0.1 5138 SYSTEM SYSDBA SYSDBA

扩展空间插件:

CREATE EXTENSION spatial; 

数据库系统表查询:

CREATE TABLE geom_test(	
	id int ,
	name varchar(255),
	geom Geometry(POINT,4326)
)

1、查询表信息

SELECT sch.schema_name,tab.table_name,tab.table_id
FROM SYSDBA.sys_tables tab
LEFT JOIN
SYSDBA.all_schemas sch
ON tab.schema_id = sch.schema_id
WHERE sch.schema_name = 'SYSDBA' AND table_name = 'geom_test'

2、查询表的主键

SELECT cs.define attname
FROM SYSDBA.DBA_CONSTRAINTS cs
LEFT JOIN SYSDBA.sys_tables tab
ON cs.table_id = tab.table_id
LEFT JOIN SYSDBA.all_schemas sch
ON tab.schema_id = sch.schema_id
WHERE sch.schema_name = 'SYSDBA' AND tab.table_name = 'geom_test' AND cs.cons_type = 'P'

3、查询表的索引列

SELECT tab.table_name,sch.schema_name,idx.index_id,idx.index_name,idx.keys,idx.IS_UNIQUE,idx.is_primary,idx.VALID
FROM SYSDBA.dba_indexes idx
LEFT JOIN SYSDBA.sys_tables tab
ON idx.table_id = tab.table_id
LEFT JOIN SYSDBA.all_schemas sch
ON tab.schema_id = sch.schema_id
WHERE sch.schema_name = 'SYSDBA' AND tab.table_name = 'geom_test' AND idx.index_type = 0 AND idx.VALID=1 AND idx.IS_UNIQUE = true

4、查询表的自增序列

SELECT col.col_name,col.type_name,col.def_val
FROM SYSDBA.ALL_COLUMNS col
LEFT JOIN SYSDBA.sys_tables tab
ON col.table_id = tab.table_id
LEFT JOIN SYSDBA.all_schemas sch
ON tab.schema_id = sch.schema_id
WHERE sch.schema_name = 'SYSDBA' AND table_name = 'geom_test' AND col.def_val LIKE '%NEXTVAL%'

5、判断GEOMETRY_COLUMNS是否存在

SELECT count(*)
FROM SYSDBA.sys_views v
LEFT JOIN SYSDBA.all_schemas sch
ON v.schema_id = sch.schema_id
WHERE sch.schema_name = 'SYSDBA' AND v.view_name = 'GEOMETRY_COLUMNS';

6、获取表的空间列

SELECT F_GEOMETRY_COLUMN FROM SYSDBA.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'SYSDBA' AND F_TABLE_NAME = 'geom_test';

7、获取表的空间列类型

SELECT TYPE FROM SYSDBA.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'SYSDBA' AND F_TABLE_NAME = 'geom_test';
select st_geometrytype("geom") from SYSDBA.geom_test limit 1

8、查询表的wkid

SELECT SRID FROM SYSDBA.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'SYSDBA' AND F_TABLE_NAME = 'geom_test';
SELECT ST_SRID(SHAPE) FROM SYSDBA.geom_test LIMIT 1;

9、获取表的空间引用

SELECT SRID,PROJ4TEXT,SRTEXT FROM SYSDBA.SPATIAL_REF_SYS WHERE SRID = 4326;

10、空间函数 (POINT一定要大写)

SELECT st_geomfromtext('POINT (1 1)') FROM dual
SELECT ST_SetSRID(ST_MakePoint(1, 1), 4326) FROM dual

表操作:

1、创建序列

CREATE SEQUENCE IF NOT EXISTS seq_geom_test_id
 increment BY 1
 start WITH 1
 minvalue 1	
 maxvalue 2147483647
 cache 1;

2、赋值序列给到表字段引用

alter table SYSDBA.geom_test alter column id default seq_geom_test_id.nextval 

3、列操作

#新增列
ALTER TABLE geom_test ADD COLUMN objectid int NOT NULL PRIMARY KEY;
#删除列
ALTER TABLE geom_test DROP COLUMN objectid;
#修改列名
ALTER TABLE geom_test RENAME id TO keyid;
#修改列字段类型
ALTER TABLE SYSDBA."geom_test" MODIFY COLUMN  "name" VARCHAR(200);

4、删除索引(索引要指定所属的table)

DROP INDEX geom_test.index_name
### 配置 MyBatis-Plus 以支持虚谷数据库 为了使 MyBatis-Plus 能够在虚谷数据库中正常工作,需确保该数据库被纳入到 MyBatis-Plus 支持的范围之内。任何能够通过 MyBatis 执行增删改查操作并兼容标准 SQL数据库理论上均应得到 MyBatis-Plus 的良好支持[^1]。 #### 数据库连接配置 通常情况下,在 Spring Boot 应用程序中的 `application.yml` 文件内完成对虚谷数据库的基本连接设置: ```yaml spring: datasource: url: jdbc:virtuoso://localhost:1111/dbname=VAD;uid=user;pwd=password username: user password: password driver-class-name: com.openlink.sql.jdbc.VirtuosoDriver ``` 上述代码片段展示了如何指定用于访问虚谷数据库的具体 JDBC URL、用户名以及密码等必要参数。 #### MyBatis-Plus 全局配置项调整 针对全局性的功能特性,比如逻辑删除的支持,则可以在同一份 YAML 文件下的 `mybatis-plus` 下定义相应的选项: ```yaml mybatis-plus: global-config: db-config: id-type: auto # 主键策略 logic-delete-field: deleted # 实体类字段名,默认 delflag logic-delete-value: 1 # 表示已删除状态的值 logic-not-delete-value: 0 # 表示未删除状态的值 ``` 这里特别指出了当启用逻辑删除机制时所涉及的关键属性及其预期取值[^5]。 #### 注解驱动的数据表映射关系建立 利用特定于 MyBatis-Plus 提供的一系列注解来简化实体对象同实际存储结构间的关联过程。例如,@TableName 可用来声明 Java 类对应哪张物理上的表格名称[^2]: ```java import com.baomidou.mybatisplus.annotation.TableName; @TableName("example_table") public class ExampleEntity { } ``` 以上即完成了基于虚谷数据库环境下的 MyBatis-Plus 初步集成指南。需要注意的是,尽管官方文档可能不会专门提及这一特殊类型的数据库实例,但由于其遵循普遍接受的标准协议,因此只要按照常规流程实施部署便足以实现无缝对接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhaoDream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值