Cypher語法中如何使用參數(shù)

小樊
84
2024-10-31 22:27:30
欄目: 編程語言

在Cypher查詢語言中,參數(shù)化查詢是一種防止SQL注入攻擊和提高查詢性能的方法

from neo4j import GraphDatabase

class Neo4jConnection:
    def __init__(self, uri, user, password):
        self._driver = GraphDatabase.driver(uri, auth=(user, password))

    def close(self):
        if self._driver:
            self._driver.close()

    def execute_query(self, query, parameters=None):
        with self._driver.session() as session:
            result = session.run(query, parameters)
            return result.data()

# 使用示例
uri = "bolt://localhost:7687"
user = "neo4j"
password = "your_password"

connection = Neo4jConnection(uri, user, password)

# 定義查詢和參數(shù)
query = "MATCH (n:Person {name: $name}) RETURN n"
parameters = {"name": "Alice"}

# 執(zhí)行查詢
result = connection.execute_query(query, parameters)
print(result)

# 關(guān)閉連接
connection.close()

在這個(gè)示例中,我們定義了一個(gè)Neo4jConnection類,用于連接到Neo4j數(shù)據(jù)庫并執(zhí)行查詢。execute_query方法接受一個(gè)查詢字符串和一個(gè)可選的參數(shù)字典。我們使用$name作為參數(shù)占位符,并在執(zhí)行查詢時(shí)傳遞一個(gè)包含實(shí)際值的字典。

請(qǐng)注意,這個(gè)示例使用的是Python的neo4j驅(qū)動(dòng)程序,但其他編程語言的Cypher驅(qū)動(dòng)程序通常具有類似的功能。在使用其他驅(qū)動(dòng)程序時(shí),請(qǐng)查閱相應(yīng)文檔以了解如何定義參數(shù)化查詢和執(zhí)行查詢。

0