如何用java编写复杂的密码查询

如何用java编写复杂的密码查询,java,neo4j,cypher,Java,Neo4j,Cypher,我是新来的。当我阅读某人的代码时,我发现以下代码: String query="{\"query\":\"START n=node("+id+") return n\",\"params\":{}}" 及 我发现写起来很复杂,很容易出错。但是我不知道如何改进它,你能帮我吗?控制复杂性的技术 当理解的复杂性成为一个问题时,您应该始终寻找这些问题 在这种情况下,最简单的方法是黑盒抽象 创建一个类,当您向它提供各种属性时,该类负责创建查询字符串 由于查询的结构是标准的,您可以很容易地(?(抱歉)编

我是新来的。当我阅读某人的代码时,我发现以下代码:

String query="{\"query\":\"START n=node("+id+") return n\",\"params\":{}}"

我发现写起来很复杂,很容易出错。但是我不知道如何改进它,你能帮我吗?

控制复杂性的技术 当理解的复杂性成为一个问题时,您应该始终寻找这些问题

在这种情况下,最简单的方法是黑盒抽象

  • 创建一个类,当您向它提供各种属性时,该类负责创建查询
    字符串
  • 由于查询的结构是标准的,您可以很容易地(?(抱歉)编写一个通用方法来包含尽可能多的属性(甚至一些自定义属性)
  • 你可以称之为

    queryBin.addProperty(propertyName1, value1);
    queryBin.addProperty(propertyName2, value1);
    queryBin.addProperty(propertyName3, value2);
    
  • 现在,您可以将它们组合成单个
    字符串
    ,如下所示

    query = queryBin.composeToString();
    
通过这种方式,您可以实现改进的可读性、抑制和隐藏的细节(封装)和安全性


希望这有帮助。

提供更多信息-您使用neo4j作为嵌入式还是服务器?如何执行查询?它应该是一个服务器。我让HttpClient执行了这个查询,然后得到了响应,最后返回到customerI。我曾经编写过SQL。我知道一个名为PrepareStatement的东西,你可以在SQL中写入(?),然后使用PrepareStatement对象来设置值,比如:pstemt.setInt(key,value)…但是我不知道如何用cypher实现它。Thaks谢谢你的帮助,这样想对我很有帮助。如果可以手动编写查询字符串,则始终可以编写代码来创建该字符串。它不需要像SQL那样功能齐全,但它可以包含适用于您的用例的基本功能。
query = queryBin.composeToString();