Skip to content
On this page

准备工作

大致介绍

NgBatis 提供了两种方式为开发者提供便利:

  • 类似于 mybatis-plus 的方式,提供一个基类让业务的 DAO 进行继承,不需要自己写 nGQL 就能完成单顶点、单边的增删改查。(详见“使用基类编写”
  • 类似于 MyBatis 的方式,支持自己编写复杂的 nGQLCypher 来完成复杂的业务查询与数据写入。(详见“自定义 nGQL”

下面,以 PersonLike 为例。

NebulaGraph 中创建的 Schema

可参考文档:CREATE TAGCREATE EDGECREATE INDEX

sql
CREATE tag `person` (
  `name` string NULL  , 
  `gender` string NULL  , 
  `age` int NULL  , 
  `birthday` date NULL  
);
sql
CREATE edge `like` (`likeness` double NULL  );
sql
-- 为查询创建索引
CREATE TAG INDEX `i_person_name_age` on `person`(`name`(50), `age`);
CREATE TAG INDEX `i_person_name` on `person`(`name`(50));

两种方式都需要的 POJO

Person.java

java
package your.domain;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import lombok.Data;

@Data
@Table(name = "person")
public class Person {
    @Id
    private String name;

    /** use @Column to declare field's schema name in database */
    @Column("gender")
    private String gender;
    private Integer age;
    private Date birthday;

    /** use @Transient to declare a field which is not exists in database */
    @Transient
    private String fieldDbNotExists;
}

Like.java

java
package your.domain;

import lombok.Data;
import javax.persistence.Table;
import lombok.Data;

@Data
@Table(name = "like")
public class Like {
    private Double likeness;
}

LikeWithRank.java

java
package your.domain;

import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;

@Table(name = "like")
public class LikeWithRank {
    @Id
    private Long rank;
    private Double likeness;
}

到此,两种使用方式样例所用的 POJO 就已经创建完毕。接下来开始我们的介绍。