Ubuntu配置Ngbatis学习环境
创始人
2024-11-14 00:04:18
0

引言

经过考虑,我感觉与NebulaGraph交互的ORM框架还是Ngbatis好。因为现在这个框架开发的比较完善,而且还在不断更新,社区活跃的用户多。从今日开始学习,首先要配置一下环境。

1.安装maven和jdk

选择的版本是maven3.8和jdk17.以下是安装步骤:

#安装jdk17 sudo apt install openjdk-17-jdk  nano ~/.bashrc   # 在文件末尾添加以下内容 export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin  #使得环境生效 source ~/.bashrc  #验证 echo $JAVA_HOME java -version

 #2.安装maven3.8.8 wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz  #-C后换成自己想安的路径  /opt只是个示例。 sudo tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /opt  #3.创建符号链接 sudo ln -s /opt/apache-maven-3.8.8 /opt/maven  #4.配置环境变量 sudo nano /etc/profile.d/maven.sh  #在文件添加以下内容 export M2_HOME=/opt/maven export PATH=${M2_HOME}/bin:${PATH}  #使得环境生效 source /etc/profile.d/maven.sh  #5.验证是否安装成功 mvn -v  

(1)接下来maven仓库设置一下,

settings.xml 文件中,添加或修改 localRepository 元素,例如:

   /path/to/your/local/repo   

运行以下命令验证Maven 是否使用了新的本地仓库路径

mvn help:evaluate -Dexpression=settings.localRepository 

结果:

(2)设置国内阿里云镜像(160行附近)

     alimaven     aliyun maven     http://maven.aliyun.com/nexus/content/groups/public/     central 

(3)配置jdk17版本项目构建(260行附近)

     jdk-17            true       17                 17       17       17      

(4)IDEA配置本地Maven

我的Maven地址后来改成了/home/kg.IDEA我安装的是社区版。

2.Ngbatis具体环境配置

1.NebulaGraph 中创建的 Schema

要先进入控制台

#创建标签 CREATE tag `person` (   `name` string NULL  ,    `gender` string NULL  ,    `age` int NULL  ,    `birthday` date NULL   );  #创建边类型 CREATE edge `like` (`likeness` double NULL  );   -- 为查询创建索引 CREATE TAG INDEX `i_person_name_age` on `person`(`name`(50), `age`); CREATE TAG INDEX `i_person_name` on `person`(`name`(50));  #插入person节点数据 INSERT VERTEX person(name, gender, age, birthday) VALUES "1":("zhangsan", "男", 18, date("1999-02-02")); 

2.后端配置

(1)先创建一个项目

groupId写错了,请改成com.ngbatis

(2)相关依赖包pom.xml

      4.0.0               org.springframework.boot         spring-boot-starter-parent         3.0.7                     com.ngbatis     Ngbatis     1.0-SNAPSHOT               17         UTF-8                                   org.springframework.boot             spring-boot-starter-web                                                   org.springframework.boot                     spring-boot-starter-tomcat                                                               org.springframework.boot             spring-boot-starter-undertow                                org.springframework.boot             spring-boot-starter-test             test                                          org.springframework.boot             spring-boot-starter                                          org.nebula-contrib             ngbatis             1.2.2-jdk17                                         org.projectlombok             lombok             1.18.30             provided                                javax.persistence             javax.persistence-api             2.2                                                            org.springframework.boot                 spring-boot-maven-plugin                             

(3)项目配置(application.yaml)

我的NebulaGraph数据库放在另一台虚拟机上

# server配置 server:   port: 8081   servlet:     context-path: /  nebula:   ngbatis:     # ^v1.1.2     # 连接使用 nebula-java 中的 SessionPool     session-life-length: 300000     check-fixed-rate: 300000     use-session-pool: true   # 填入 graphd 的 ip 和端口号,下面仅供参考   hosts: 192.168.145.138:9669   # 连接图数据库所用的用户名   username: root   # 连接图数据库所用的密码   password: nebula   # 所要连接的图数据库图空间名   space: my_space   # 连接池配置   pool-config:     # 连接池中最小空闲连接数     min-conns-size: 0     # 连接池中最大空闲连接数     max-conns-size: 10     # 客户端同服务端建立连接的超时时间设置,单位为 ms;超过设定时间未建立起连接,则报错     timeout: 6000     # 连接空闲时间,为 0 表示连接永不删除,单位为 ms     idle-time: 0     # 连接池检测空闲连接的时间间隔,为 -1 表示不进行检测     interval-idle: -1     # 连接等候时间,超过则不再等候连接     wait-time: 6000     # 集群允许最小的服务可用率,1.0 表示为所有机器 graphd 可用,0.25 表示集群中 1/4 机器可用即可     min-cluster-health-rate: 1.0     # 是否允许 SSL 连接,目前暂不支持     enable-ssl: true   

(4)实体类Person

package com.ngbatis.entity;  import javax.persistence.Column; 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(name = "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; }

(4)PersonDao

package com.ngbatis.mapper;  import com.ngbatis.entity.Person; import org.nebula.contrib.ngbatis.proxy.NebulaDaoBasic;  import java.util.List;  public interface PersonDao extends NebulaDaoBasic {      public List selectAll(); } 

(5)PersonDao.xml

               match (n:person) return n limit 10;      

(6)PersonController

package com.ngbatis.controller;  import com.ngbatis.entity.Person; import com.ngbatis.mapper.PersonDao; import com.ngbatis.service.PersonService; import com.ngbatis.service.impl.PersonServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;  import java.util.HashMap; import java.util.List;  @RestController @RequestMapping("/person") public class PersonController {          @Autowired     private PersonDao personDao;       @GetMapping("select")     public HashMap  selectById() {         List people = personDao.selectAll();         System.out.println(people);         return new HashMap() {{             put("code", 200);         }};     } } 

(7)启动类(SpringbootApplication)

package com.ngbatis;  import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;  @SpringBootApplication( 		exclude = { DataSourceAutoConfiguration.class }, 		scanBasePackages = { "org.nebula.contrib.ngbatis", "com.ngbatis" } ) public class SpringbootApplication {  	public static void main(String[] args) { 		SpringApplication.run(SpringbootApplication.class, args); 	} } 

3.结果

前两次还没插入数据

相关内容

热门资讯

第3分钟了解(aapoker讲... 第3分钟了解(aapoker讲解)外挂辅助下载(辅助挂)科技教程(2026已更新)(哔哩哔哩);aa...
第七分钟熟悉!wepoker辅... 第七分钟熟悉!wepoker辅助插件功能,德普之星辅助工具如何打开,总结教程(有挂秘籍)-哔哩哔哩1...
4阶段了解!兴动互娱辅助器,w... 4阶段了解!兴动互娱辅助器,wepoker亲友圈有用吗,教你攻略(有挂详情)1、玩家可以在兴动互娱辅...
第7分钟了解“哈灵小程序脚本”... 第7分钟了解“哈灵小程序脚本”详细透视开挂辅助安装-哔哩哔哩;大家肯定在之前哈灵小程序脚本或者哈灵小...
八分钟了解(钱柜手游)外挂辅助... 八分钟了解(钱柜手游)外挂辅助挂(透视)详细教程(2020已更新)(哔哩哔哩);亲真的是有正版授权,...
七分钟透视!aapoker辅助... 七分钟透视!aapoker辅助工具免费下载,wepoker透视方法,插件教程(有挂方式)-哔哩哔哩1...
第5些了解!仙神互娱辅助,智星... 第5些了解!仙神互娱辅助,智星菠萝辅助怎么买,2025新版(有挂头条)该软件可以轻松地帮助玩家将仙神...
8分钟了解“微信雀神小程序插件... 8分钟了解“微信雀神小程序插件”详细透视开挂辅助攻略-哔哩哔哩;是一款可以让一直输的玩家,快速成为一...
第6分钟了解(pokerwor... 第6分钟了解(pokerworld软件)外挂辅助软件(透视)详细教程(2024已更新)(哔哩哔哩)是...
第5分钟黑科技!aapoker... 第5分钟黑科技!aapoker破解侠是真的吗,智星菠萝可以辅助吗,教你攻略(有挂解密)-哔哩哔哩第5...