NebulaGraph学习笔记-NgBatis连接

2024-02-21 10:12

本文主要是介绍NebulaGraph学习笔记-NgBatis连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近项目需要连接NebulaGraph图数据库获取部分数据,于是查看了一些相关资料,发现一个NgBatis框架。

NgBatis是一个使用类似MyBatis+MyBatis-Plus的方式操作NebulaGraph的JavaORM框架。同时NgBatis也是一款针对NebulaGraph+SpringBoot的数据库ORM框架。借鉴于MyBatis的使用习惯进行开发,当中包含了部分类似于mybatis-plus的单表操作。另外还有部分图特有的实体-关系基本操作。具体的可以点击查看官方文档。

NgBatis连接
  • 相关依赖包
<!-- SpringBoot依赖包 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId>
</dependency><!-- Client依赖包 -->
<dependency><groupId>com.vesoft</groupId><artifactId>client</artifactId><version>3.6.1</version>
</dependency><dependency><groupId>org.nebula-contrib</groupId><artifactId>ngbatis</artifactId><version>1.2.0</version><exclusions><exclusion><groupId>com.vesoft</groupId><artifactId>client</artifactId></exclusion></exclusions>
</dependency>
  • 项目引入配置
# https://github.com/nebula-contrib/ngbatis
nebula:ngbatis:session-life-length: 300000 # since v1.1.2check-fixed-rate: 300000 # since v1.1.2# space name needs to be informed through annotations(@Space) or xml(space="test")# default false(false: Session pool map will not be initialized)use-session-pool: false # since v1.1.2hosts: 127.0.0.1:19669, 127.0.0.1:9669username: rootpassword: nebulaspace: testpool-config:min-conns-size: 0max-conns-size: 10timeout: 6000idle-time: 0interval-idle: -1wait-time: 6000min-cluster-health-rate: 1.0enable-ssl: false
  • 部分参考代码
@SpringBootApplication
@ComponentScan(basePackages = { "org.nebula.contrib" })
public class NebulaGraphApplication {}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import javax.persistence.Id;
import javax.persistence.Table;@Data
@Table(name = "player_with_default")
@NoArgsConstructor
@AllArgsConstructor
public class PlayerWithDefaultPO {@Idprivate String name;private Integer age;public PlayerWithDefaultPO(String name) {this.name = name;}}
import org.nebula.contrib.ngbatis.proxy.NebulaDaoBasic;
import org.springframework.data.repository.query.Param;import java.util.List;
import java.util.Map;public interface PlayerWithDefaultDAO extends NebulaDaoBasic<PlayerWithDefaultPO, String> {Integer returnAge(PlayerWithDefaultPO playerWithDefaultPO);PlayerWithDefaultPO selectOne(@Param("name") String name);List<PlayerWithDefaultPO> selectAgeGt(Integer age);List<PlayerWithDefaultPO> selectNameAndAgeGt(String name, Integer age);List<PlayerWithDefaultPO> selectList();List<String> selectListString();List<Map> selectListMap();Map<String, Object> selectMap();}
<mapper namespace="com.dao.PlayerWithDefaultDAO"><!-- new features from v1.2.0 start --><nGQL id="include-player-value">${playerWithDefaultPO}</nGQL><nGQL id="ngql-return-age">RETURN @ng.include('include-player-value',{'playerWithDefaultPO':age});</nGQL><!--The same as:RETURN ${person.age};You can try extracting more common and meaningful scripts.--><select id="returnAge" resultType="java.lang.Integer">@ng.include('ngql-return-age',playerWithDefaultPO);</select><select id="selectOne" resultType="com.domain.po.PlayerWithDefaultPO">MATCH (v:player_with_default) WHERE id(v) == $name return v limit 1</select><select id="selectAgeGt" resultType="com.domain.po.PlayerWithDefaultPO">MATCH (n:player_with_default)WHERE n.player_with_default.age > $p0RETURN nLIMIT 100</select><select id="selectNameAndAgeGt" resultType="com.domain.po.PlayerWithDefaultPO">MATCH (n:player_with_default)WHERE id(n) == $p0 AND n.player_with_default.age > $p1RETURN nLIMIT 100</select><select id="selectList" resultType="com.domain.po.PlayerWithDefaultPO">MATCH (v:player_with_default) RETURN v LIMIT 100</select><select id="selectListString" resultType="java.lang.String">MATCH (v:player_with_default) RETURN id(v) as name LIMIT 100</select><select id="selectListMap" resultType="java.util.Map">MATCH (v:player_with_default) RETURN id(v) as name, v.player_with_default.age as age LIMIT 100</select><select id="selectMap" resultType="java.util.Map">MATCH (n: player_with_default)-[r: like]->(n2: player_with_default)RETURN n, r, n2LIMIT 100</select></mapper>
总体来说,对于习惯使用MyBatis或者MyBatis-Plus的开发人员来说还是很容易上手的。

这篇关于NebulaGraph学习笔记-NgBatis连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731421

相关文章

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数