准备工作
大致介绍
NgBatis 提供了两种方式为开发者提供便利:
- 类似于 mybatis-plus 的方式,提供一个基类让业务的
DAO进行继承,不需要自己写nGQL就能完成单顶点、单边的增删改查。(详见“使用基类编写”) - 类似于 MyBatis 的方式,支持自己编写复杂的
nGQL或Cypher来完成复杂的业务查询与数据写入。(详见“自定义 nGQL”)
下面,以 Person 与 Like 为例。
NebulaGraph 中创建的 Schema
可参考文档:CREATE TAG、CREATE EDGE、CREATE 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 就已经创建完毕。接下来开始我们的介绍。