neo4j圖形資料庫第六彈——整合springboot(支援新增節點關係)
阿新 • • 發佈:2018-12-01
正經學徒,佛系記錄,不搞事情
基於上文:https://blog.csdn.net/qq_31748587/article/details/84392092 的專案
這裡舉例四種常用的新增方法:
- 建立單個節點
- 建立多個節點
- 根據已有節點建立關係
- 同時建立節點和關係
工具類 Neo4jUtil 中新增方法 add
/** * 執行新增cql * @param cql 查詢語句 */ public static void add(String cql) { //啟動事務 try (Session session = driver.session(); Transaction tx = session.beginTransaction()) { tx.run(cql); //提交事務 tx.success(); } catch (Exception e) { e.printStackTrace(); } }
這與以往的查詢工具方法不同,涉及到事務處理,需要通過 .beginTransaction 方法開啟事務,通過 tx.success 提交事務
這裡用到了 Java 1.7 特性 try-with-resource 語法糖來開啟資源,作用是執行完程式碼自動關閉資源
呼叫方法:
第一種:建立單個節點
@GetMapping("add")
public void add(){
//建立單個節點
String cql = "create (:Person{name:\"康康\"})";
neo4jUtil.add(cql);
}
注意:create
為了避免重複建立節點可以使用 merge,使用 merge 也要注意如果資料庫沒有該節點,則新增該節點,有該節點則查詢出該節點(屬性、型別有一個不同的都不會被識別為同一個節點,merge時需要寫出所有的屬性)
結果:
第二種:建立多個節點
String cql = "create (:Person{name:\"李雷\"}) create (:Person{name:\"小明\"})";
結果:
第三種:根據已有節點建立關係
String cql = "match (n:Person{name:\"李雷\"}),(m:Person{name:\"小明\"}) create (n)-[r:friendRelation]->(m)";
結果:
第四種:同時建立節點和關係
String cql = "create (:Person{name:\"張三\"})-[r:friendRelation]->(:Person{name:\"王五\"})";
結果:
專案地址:
https://pan.baidu.com/s/1whwP5b28VlyvDcfeThXmtA 提取碼: rd3c